From 70702aee59f49382cb660d59df7a814c099a6b11 Mon Sep 17 00:00:00 2001 From: Paul Bakaus Date: Sun, 25 May 2008 16:06:24 +0000 Subject: [PATCH] draggable: fixed absolute positioned element's scroll positions --- ui/source/ui.draggable.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ui/source/ui.draggable.js b/ui/source/ui.draggable.js index 13d60f736..f012e6f53 100644 --- a/ui/source/ui.draggable.js +++ b/ui/source/ui.draggable.js @@ -118,6 +118,7 @@ this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight() };//Recache the helper size if ($.ui.ddmanager && !o.dropBehaviour) $.ui.ddmanager.prepareOffsets(this, e); + this.mouseDrag(e); //Execute the drag once - this causes the helper not to be visible before getting its correct position return true; }, convertPositionTo: function(d, pos) { @@ -128,7 +129,7 @@ pos.top // the calculated relative position + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border) - - (this.cssPosition == "fixed" || this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop) * mod // The offsetParent's scroll position, not if the element is fixed + - (this.cssPosition == "fixed" || (this.cssPosition == "absolute" && this.offsetParent[0] == document.body) ? 0 : this.offsetParent[0].scrollTop) * mod // The offsetParent's scroll position, not if the element is fixed + (this.cssPosition == "fixed" ? this.offsetParent[0].scrollTop : 0) * mod + this.margins.top * mod //Add the margin (you don't want the margin counting in intersection methods) ), @@ -136,7 +137,7 @@ pos.left // the calculated relative position + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border) - - (this.cssPosition == "fixed" || this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft) * mod // The offsetParent's scroll position, not if the element is fixed + - (this.cssPosition == "fixed" || (this.cssPosition == "absolute" && this.offsetParent[0] == document.body) ? 0 : this.offsetParent[0].scrollLeft) * mod // The offsetParent's scroll position, not if the element is fixed + (this.cssPosition == "fixed" ? this.offsetParent[0].scrollLeft : 0) * mod + this.margins.left * mod //Add the margin (you don't want the margin counting in intersection methods) ) @@ -151,7 +152,7 @@ - this.offset.click.top // Click offset (relative to the element) - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent - this.offset.parent.top // The offsetParent's offset without borders (offset + border) - + (this.cssPosition == "fixed" || this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop) // The offsetParent's scroll position, not if the element is fixed + + (this.cssPosition == "fixed" || (this.cssPosition == "absolute" && this.offsetParent[0] == document.body) ? 0 : this.offsetParent[0].scrollTop) // The offsetParent's scroll position, not if the element is fixed - (this.cssPosition == "fixed" ? this.offsetParent[0].scrollTop : 0) ), left: ( @@ -159,7 +160,7 @@ - this.offset.click.left // Click offset (relative to the element) - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent - this.offset.parent.left // The offsetParent's offset without borders (offset + border) - + (this.cssPosition == "fixed" || this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft) // The offsetParent's scroll position, not if the element is fixed + + (this.cssPosition == "fixed" || (this.cssPosition == "absolute" && this.offsetParent[0] == document.body) ? 0 : this.offsetParent[0].scrollLeft) // The offsetParent's scroll position, not if the element is fixed - (this.cssPosition == "fixed" ? this.offsetParent[0].scrollLeft : 0) ) }; -- 2.39.5