包含jQueryUI后,唯一的javascript是:
$("#scrollbox").draggable({
axis: 'y',
drag: function(event, ui) {
$(document).scrollTop(ui.position.top);
},
});
文档滚动对可拖动div(我认为具有固定位置)具有复合效果。它会导致滚动条逃跑。取出文档滚动,它工作正常,只是没有我想要的页面滚动。
有什么想法吗?
谢谢!
答案 0 :(得分:5)
以下是错误报告,尚未解决:http://bugs.jqueryui.com/ticket/5009
到目前为止,还没有官方修复的jQuery UI中存在另一个已知错误,修复版计划为1.9版。有几种方法可以解决它,从简单到丑陋的黑客,请查看我在这里的回复:jQuery draggable shows helper in wrong place after page scrolled
答案 1 :(得分:1)
我发现使用拖动功能(触发onmousemove
)你可以抵消帮助者的位置。您必须在发布的示例中定位帮助器 - 我想您只需将ui.item
替换为ui.helper
。
drag: function(event, ui) {
var offset = $(this).offset();
var yPos = offset.top;
ui.helper.css('margin-top', $(window).scrollTop() + 'px');
}
这应该可以确定文档在Chrome和Safari中滚动时的位置。没有这个修复,Mozilla是唯一正常工作的浏览器。尚未在IE上测试过。
干杯
答案 2 :(得分:0)
保持简单。这是我的解决方案,它工作正常。
drag: function(event, ui) {
ui.helper.css('margin-top', -(t-c.scrollTop()));
},
start: function( event, ui ) {
t = c.scrollTop();
},