谷歌浏览器's滚动条和jQuery UI's的可拖动插件

Google Chrome's scrollbars and jQuery UI's draggable plugin

本文关键字:拖动 插件 滚动条 谷歌浏览器 jQuery UI      更新时间:2023-09-26

首先,示例:http://jsfiddle.net/Koviko/92PZZ/

在这里,我使用jQueryUI的draggable插件来允许水平拖动容器。我还让第二个子元素包含了一个滚动条。问题是不同的浏览器对这个滚动条的使用方式不同。我已经在IE8以及Chrome和Firefox的最新稳定版本中进行了测试。

对于所需的行为,有两个测试用例:

  1. 在滚动条上按住鼠标并垂直移动,以及
  2. 点击并按住滚动条的鼠标并水平移动

第一个用例(垂直移动):

IE8和Firefox:没有问题。

Chrome:释放鼠标按钮后,移动鼠标将导致容器与鼠标光标一起拖动。释放容器需要将鼠标从滚动条上移开(在容器下方、外部),然后尝试拖动。

第二个用例(水平移动):

IE8:水平拖动不会导致任何移动。

Firefox:水平拖动会导致容器移动。

Chrome:水平拖动会导致容器移动,与垂直滚动一样,在释放鼠标按钮后不会释放拖动。它以同样的方式被清除。


因此,基本上,Chrome的行为就是问题所在。我会接受Firefox或IE8中的行为。有没有办法从Chrome中强制执行这种行为?

这在Fiddle中得到了演示:http://jsfiddle.net/FGXnR/

答案是这样的:使用jQueryUIDragable,使用滚动条时如何避免拖动?

基本上,使用handle:选项来指定要拖动的特定对象。