mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
Draggable: Cleanup.
This commit is contained in:
parent
e9f5c1857f
commit
51e1d576f6
47
ui/jquery.ui.draggable.js
vendored
47
ui/jquery.ui.draggable.js
vendored
@ -34,30 +34,7 @@ $.widget( "ui.draggable", {
|
|||||||
// overflowOffset: offset of scroll parent
|
// overflowOffset: offset of scroll parent
|
||||||
// overflow: object containing width and height keys of scroll parent
|
// overflow: object containing width and height keys of scroll parent
|
||||||
|
|
||||||
// TODO: move next to _unblockFrames()
|
|
||||||
_blockFrames: function() {
|
|
||||||
var body = this.document[0].body;
|
|
||||||
|
|
||||||
this.iframeBlocks = this.document.find( "iframe" ).map(function() {
|
|
||||||
var iframe = $( this ),
|
|
||||||
iframeOffset = iframe.offset();
|
|
||||||
|
|
||||||
return $( "<div>" )
|
|
||||||
.css({
|
|
||||||
position: "absolute",
|
|
||||||
width: iframe.outerWidth(),
|
|
||||||
height: iframe.outerHeight(),
|
|
||||||
top: iframeOffset.top,
|
|
||||||
left: iframeOffset.left
|
|
||||||
})
|
|
||||||
.appendTo( body )[0];
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
_create: function() {
|
_create: function() {
|
||||||
// TODO: move to drag start in case DOM changes
|
|
||||||
this.scrollParent = this.element.scrollParent();
|
|
||||||
|
|
||||||
// Static position elements can't be moved with top/left
|
// Static position elements can't be moved with top/left
|
||||||
if ( this.element.css( "position" ) === "static" ) {
|
if ( this.element.css( "position" ) === "static" ) {
|
||||||
this.element.css( "position", "relative" );
|
this.element.css( "position", "relative" );
|
||||||
@ -66,7 +43,6 @@ $.widget( "ui.draggable", {
|
|||||||
this._bind({ mousedown: "_mouseDown" });
|
this._bind({ mousedown: "_mouseDown" });
|
||||||
},
|
},
|
||||||
|
|
||||||
// TODO: why is relative handled differently than fixed/absolute?
|
|
||||||
_getPosition: function() {
|
_getPosition: function() {
|
||||||
var left, top, position, offset,
|
var left, top, position, offset,
|
||||||
scrollTop = this.scrollParent.scrollTop(),
|
scrollTop = this.scrollParent.scrollTop(),
|
||||||
@ -84,10 +60,11 @@ $.widget( "ui.draggable", {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// When using relative, css values are checked
|
// When using relative, css values are checked
|
||||||
|
// Otherwise the position wouldn't account for padding on ancestors
|
||||||
left = this.dragEl.css( "left" );
|
left = this.dragEl.css( "left" );
|
||||||
top = this.dragEl.css( "top" );
|
top = this.dragEl.css( "top" );
|
||||||
|
|
||||||
// Webkit will give back auto if there is nothing inline yet
|
// Webkit will give back auto if there is no explicit value
|
||||||
left = ( left === "auto" ) ? 0: parseInt( left, 10 );
|
left = ( left === "auto" ) ? 0: parseInt( left, 10 );
|
||||||
top = ( top === "auto" ) ? 0: parseInt( top, 10 );
|
top = ( top === "auto" ) ? 0: parseInt( top, 10 );
|
||||||
|
|
||||||
@ -169,6 +146,7 @@ $.widget( "ui.draggable", {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.cssPosition = this.dragEl.css( "position" );
|
this.cssPosition = this.dragEl.css( "position" );
|
||||||
|
this.scrollParent = this.element.scrollParent();
|
||||||
|
|
||||||
// Cache starting absolute and relative positions
|
// Cache starting absolute and relative positions
|
||||||
this.startPosition = this._getPosition();
|
this.startPosition = this._getPosition();
|
||||||
@ -310,6 +288,25 @@ $.widget( "ui.draggable", {
|
|||||||
return ret;
|
return ret;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_blockFrames: function() {
|
||||||
|
var body = this.document[0].body;
|
||||||
|
|
||||||
|
this.iframeBlocks = this.document.find( "iframe" ).map(function() {
|
||||||
|
var iframe = $( this ),
|
||||||
|
iframeOffset = iframe.offset();
|
||||||
|
|
||||||
|
return $( "<div>" )
|
||||||
|
.css({
|
||||||
|
position: "absolute",
|
||||||
|
width: iframe.outerWidth(),
|
||||||
|
height: iframe.outerHeight(),
|
||||||
|
top: iframeOffset.top,
|
||||||
|
left: iframeOffset.left
|
||||||
|
})
|
||||||
|
.appendTo( body )[0];
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
_unblockFrames: function() {
|
_unblockFrames: function() {
|
||||||
if ( this.iframeBlocks ) {
|
if ( this.iframeBlocks ) {
|
||||||
this.iframeBlocks.remove();
|
this.iframeBlocks.remove();
|
||||||
|
Loading…
Reference in New Issue
Block a user