IE8中存在奇怪的可拖动行为

时间:2014-09-02 11:46:15

标签: javascript jquery jquery-ui jquery-ui-draggable

对于jqueryui上列出的默认可拖动:

http://jqueryui.com/draggable/

什么决定了当前被拖动项目的位置?

我在IE8中遇到一个问题,当我开始拖动时,被拖动的项目会出现在不同的高度。

以下是正常行为,鼠标图标以蓝色绘制,以显示项目被拖动时的正确位置:

enter image description here

但是在IE8中,当我开始拖动时,被拖动的项目会出现在不同的高度。 注意蓝色的鼠标图标:

enter image description here

被拖动项目的高度偏移量和鼠标指针位置取决于整个页面的当前滚动位置。因此,我向下滚动页面的可拖动性与鼠标指针相比显得更高。

可能导致此行为的原因是什么?我无法使用小代码段重新创建它。此行为发生在大型代码库中,这使得难以重新创建。

1 个答案:

答案 0 :(得分:0)

这对我有用。项目本身与被拖动项目之间的偏移差异与页面的滚动量相同,因此我只需将滚动值添加到ui.position.top:

function msieversion返回Internet Explorer版本。

drag: function(event,ui){

                  /**
                  * This issue just occurs on IE8
                  * issue : if page has been scrolled down any item which is dragged appears
                  * at a different position than item dragged
                  **/
                  if((msieversion() <= 8.0) && (document.documentElement.scrollTop > 0)){
                      ui.position.top += document.documentElement.scrollTop;
                  }
               }