2

我正在使用jQuery UI Draggable 小部件。除了我现在需要添加自动滚动之外,它运行良好。也就是说,在拖动时,我想在鼠标位于窗口顶部或底部时滚动浏览器窗口。

我在 C 和 C++ 中做这样的事情有很多经验。我会设置一个标志来指示正在进行拖动操作。在鼠标移动消息处理程序中,我会设置一个计时器。在计时器的处理程序中,我会在适当的方向滚动窗口。当鼠标离开“触发”区域时,我会关闭计时器。我会使用一个计时器,这样即使鼠标没有移动,滚动也是有规律的。

谁能提供一些关于我如何开始使用 jQuery 和 Draggable 小部件的建议?有鼠标移动处理程序吗?我可以判断鼠标是在窗口的顶部还是底部?我可以滚动浏览器窗口吗?那么计时器问题呢?一种想法是为“触发”区域显示一些叠加层,但我的 jQuery 技能有些有限。或者,更好的是,我确信有人已经做过这样的事情了。有什么例子吗?

注意: Draggable 小部件支持自动滚动,但它会滚动容器元素。我需要滚动浏览器窗口。

编辑

我尝试将 Containment 选项设置为“document”,但没有明显效果。

$('.drag-handle').draggable({ 
  axis: "y",
  containment: "document",
  scroll: true,
  helper: buildHelper
});
4

1 回答 1

2

基本上,它与您的代码一起使用:http: //jsfiddle.net/DgzAH但用户必须始终稍微移动鼠标以激活自动滚动。

几个月前我写了一些代码来滚动一个div当元素拖动而不移动鼠标的时候:

拖动元素而不移动鼠标时滚动div

这个想法是检查拖动的元素位置并setInterval在拖动事件位置位于我的边框的 70px 时创建一个函数div。在您的情况下,页面包装器或直接body:http: //jsfiddle.net/pPn3v/22/

于 2013-01-11T08:04:18.530 回答