Changeset 4205
- Timestamp:
- 12/17/07 15:37:26 (1 year ago)
- Location:
- trunk/ui/experimental/mouse
- Files:
-
- 3 modified
-
drag.html (modified) (2 diffs)
-
ui.draggable.ext.js (modified) (1 diff)
-
ui.draggable.js (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ui/experimental/mouse/drag.html
r4203 r4205 36 36 height: 400px; 37 37 border: 10px solid black; 38 overflow: scroll;39 38 position: absolute; 40 39 left: 100px; … … 65 64 }, 66 65 cursor: 'move', 67 containment: 'parent',66 containment: { top: 10, left: 10, right: 10, bottom: 10 }, 68 67 //axis: 'x', 69 68 //grid: [20,20], -
trunk/ui/experimental/mouse/ui.draggable.ext.js
r4203 r4205 113 113 114 114 if(c.constructor == Array) { 115 116 117 115 if((ui.absolutePosition.left < c[0])) self.position.left = c[0] - (self.offset.left - self.clickOffset.left); 118 116 if((ui.absolutePosition.top < c[1])) self.position.top = c[1] - (self.offset.top - self.clickOffset.top); 119 //if(ui.draggable.pos[0]+h[0].offsetWidth > c[2]-o.po.left) ui.draggable.pos[0] = c[2]-o.po.left-h[0].offsetWidth; 120 //if(ui.draggable.pos[1]+h[0].offsetHeight > c[3]-o.po.top) ui.draggable.pos[1] = c[3]-o.po.top-h[0].offsetHeight; 121 117 if(ui.absolutePosition.left - c[2] + self.helperProportions.width >= 0) self.position.left = c[2] - (self.offset.left - self.clickOffset.left) - self.helperProportions.width; 118 if(ui.absolutePosition.top - c[3] + self.helperProportions.height >= 0) self.position.top = c[3] - (self.offset.top - self.clickOffset.top) - self.helperProportions.height; 122 119 } else { 123 124 if(c.left && (ui.draggable.pos[0] < c.left)) ui.draggable.pos[0] = c.left; 125 if(c.top && (ui.draggable.pos[1] < c.top)) ui.draggable.pos[1] = c.top; 126 127 var p = $(o.pp); 128 if(c.right && ui.draggable.pos[0]+h[0].offsetWidth > p[0].offsetWidth-c.right) ui.draggable.pos[0] = (p[0].offsetWidth-c.right)-h[0].offsetWidth; 129 if(c.bottom && ui.draggable.pos[1]+h[0].offsetHeight > p[0].offsetHeight-c.bottom) ui.draggable.pos[1] = (p[0].offsetHeight-c.bottom)-h[0].offsetHeight; 130 120 if((ui.position.left < c.left)) self.position.left = c.left; 121 if((ui.position.top < c.top)) self.position.top = c.top; 122 if(ui.position.left - self.offsetParent.innerWidth() + self.helperProportions.width + c.right + (parseInt(self.offsetParent.css("borderLeftWidth")) || 0) + (parseInt(self.offsetParent.css("borderRightWidth")) || 0) >= 0) self.position.left = self.offsetParent.innerWidth() - self.helperProportions.width - c.right - (parseInt(self.offsetParent.css("borderLeftWidth")) || 0) - (parseInt(self.offsetParent.css("borderRightWidth")) || 0); 123 if(ui.position.top - self.offsetParent.innerHeight() + self.helperProportions.height + c.bottom + (parseInt(self.offsetParent.css("borderTopWidth")) || 0) + (parseInt(self.offsetParent.css("borderBottomWidth")) || 0) >= 0) self.position.top = self.offsetParent.innerHeight() - self.helperProportions.height - c.bottom - (parseInt(self.offsetParent.css("borderTopWidth")) || 0) - (parseInt(self.offsetParent.css("borderBottomWidth")) || 0); 131 124 } 132 133 125 134 126 } -
trunk/ui/experimental/mouse/ui.draggable.js
r4203 r4205 50 50 return { 51 51 helper: this.helper, 52 position: { left: this.position, top: this.position },52 position: this.position, 53 53 absolutePosition: this.positionAbs, 54 54 instance: this, … … 82 82 83 83 //Find out the next positioned parent 84 varoffsetParent = (function(cp) {84 this.offsetParent = (function(cp) { 85 85 while(cp) { 86 86 if(cp.style && /(absolute|relative|fixed)/.test($.css(cp,'position'))) return $(cp); … … 98 98 //Generate the original position 99 99 this.originalPosition = { 100 left: (r ? parseInt(this.helper.css('left')) || 0 : elementPosition.left + ( offsetParent[0] == document.body ? 0 :offsetParent[0].scrollLeft)),101 top: (r ? parseInt(this.helper.css('top')) || 0 : elementPosition.top + ( offsetParent[0] == document.body ? 0 :offsetParent[0].scrollTop))100 left: (r ? parseInt(this.helper.css('left')) || 0 : elementPosition.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft)), 101 top: (r ? parseInt(this.helper.css('top')) || 0 : elementPosition.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)) 102 102 }; 103 103
