首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery UI可排序滚动辅助元素抵消Firefox问题

问jQuery UI可排序滚动辅助元素抵消Firefox问题
EN

Stack Overflow用户
提问于 2010-03-16 09:07:39
回答 15查看 35.4K关注 0票数 56

我在Firefox3.6IE7-8的jQuery UI 1.7.2可排序列表中遇到了问题。当我向下滚动一点时,helper元素似乎具有与我从鼠标指针向下滚动的相同高度的偏移量,这使得无法看到您最初开始拖动的是哪一项。我该如何解决这个问题呢?如果没有修复,什么是真正好的替代拖拽插件?

下面是我的可排序的初始化参数。

代码语言:javascript
复制
$("#sortable").sortable( {placeholder: 'ui-state-highlight'  } );
$("#sortable").disableSelection();
EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2010-08-17 04:49:23

我看到了这个问题,并且能够通过从我的页面上的一个包含div中删除css规则position:relative来解决它。另请参阅:http://forum.jquery.com/topic/sortable-offset-when-element-is-dragged-and-page-scrolled-down-ff

票数 24
EN

Stack Overflow用户

发布于 2010-08-03 10:48:38

如果要防止浏览器嗅探,CSS唯一的解决方案是将ul或容器样式设置为overflow: auto。如果你通过firebug查看源代码,就会发现jQuery在他们的example中就是这样做的。

票数 132
EN

Stack Overflow用户

发布于 2013-11-27 02:26:06

使用overflow: auto;对我来说不是一个选择。我能够使用此sort事件处理程序解决此问题:

代码语言:javascript
复制
$(...).sortable({
    ...
    sort: function(event, ui) {
        var $target = $(event.target);
        if (!/html|body/i.test($target.offsetParent()[0].tagName)) {
            var top = event.pageY - $target.offsetParent().offset().top - (ui.helper.outerHeight(true) / 2);
            ui.helper.css({'top' : top + 'px'});
        }
    },
    ...
});

它并不完美,但它不需要浏览器嗅探。在IE8,Chrome和火狐上测试过。

编辑:使用jQuery 1.10.0和jQuery UI 1.10.3。

票数 48
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2451528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档