Skip to main content

Bug Tracker

Side navigation

#1205 closed bug (wontfix)

Opened May 18, 2007 09:31AM UTC

Closed March 31, 2008 01:39AM UTC

Position of Droppables within overflow:auto containers not calculated well!

Reported by: c_t Owned by: stefan
Priority: major Milestone: 1.1.3
Component: interface Version: 1.1.2
Keywords: interface droppable getposition overflow auto Cc:
Blocked by: Blocking:
Description

The position of Droppables, that are placed within a container that has the css-property overflow:auto set, is not calculated well when the droppable area has been scrolled.

The reason is, that jQuery.iDrop.highlight() and jQuery.iDrop.remeasure() both use jQuery.iUtil.getPositionLite() which does not take into account scrolling-offsets.

Changing these function calls to getPosition() fixed the problem for me. However I know, that getPosition() is much slower than the lite-version.

So maybe a configuration variable should be Introduced, like script.aculo.us does: something like ''Position.includeScrollOffsets'' .

If set to true, the slow getPosition() method is used, which considers scrolling offsets.

If set to false (which should be default) the fast getPositionLite() is used.

Attachments (0)
Change History (2)

Changed October 19, 2007 02:47PM UTC by gregmac comment:1

This problem also affects #1437

Patch to apply the changes in this ticket:

Index: idrop.js
===================================================================
--- idrop.js	(revision 3)
+++ idrop.js	(working copy)
@@ -89,7 +89,7 @@
 				if (jQuery(jQuery.iDrag.dragged).is('.' + iEL.dropCfg.a)) {
 					if (iEL.dropCfg.m == false) {
 						iEL.dropCfg.p = jQuery.extend(
-							jQuery.iUtil.getPositionLite(iEL),
+							jQuery.iUtil.getPosition(iEL),
 							jQuery.iUtil.getSizeLite(iEL)
 						);//jQuery.iUtil.getPos(iEL);
 						iEL.dropCfg.m = true;
@@ -135,7 +135,7 @@
 				var iEL = jQuery.iDrop.zones[i].get(0);
 				if (jQuery(jQuery.iDrag.dragged).is('.' + iEL.dropCfg.a)) {
 					iEL.dropCfg.p = jQuery.extend(
-						jQuery.iUtil.getPositionLite(iEL),
+						jQuery.iUtil.getPosition(iEL),
 						jQuery.iUtil.getSizeLite(iEL)
 					);
 					if (iEL.dropCfg.ac) {

Changed March 31, 2008 01:39AM UTC by scott.gonzal comment:2

resolution: → wontfix
status: newclosed

Interface is no longer supported; consider switching to jQuery UI.