jQuery-UI ::如何提高拖动速度?

时间:2012-03-01 20:42:45

标签: jquery jquery-ui

也许这个问题本身没有多大意义,所以让我解释一下...... 我正在开发一个交互式地图应用程序,除了其他功能之外,它还允许您在放大时移动地图。只需单击并拖动即可。这个功能是通过使用jQuery-UI完成的。

我的问题是,默认情况下,拖动的因子为1.这意味着将光标移动1个像素会将地图拖动1个像素。我需要的是有一个'乘数'(可能在1-10的范围内),这样通过将光标移动1个像素,地图将拖动乘数的值(以像素表示)。 我怎么能这样做仍然依赖于jQuery-UI插件?

由于

2 个答案:

答案 0 :(得分:3)

您可以使用可拖动UI对象的拖动事件来操纵位置并获得更快的拖动。

我已经创建了一个非常基本的实现,您可以适应您的地图..

http://jsfiddle.net/3QgJS/

答案 1 :(得分:2)

为了确保答案包含代码(而不仅仅是链接),并改进现有答案(减少故障),我想出了以下内容:

var mult = 1.3;
$("#dragme").draggable({
    drag: function (event, ui) {
        ui.position.top += (ui.offset.top - ui.originalPosition.top) * mult;
        ui.position.left += (ui.offset.left - ui.originalPosition.left) * mult;
    }
});

mult设置为0以获得正常的拖动速度。

如果设置ui.position,则无需使用jQuery的css方法。使用这些公式时,当您尝试第二次拖动时位置不会跳转(因为它基于偏移和原始位置)。您应该能够轻松调整它以包含容器,方法是检查ui.position以及容器的高度和宽度,并以相同的方式重置ui.position(除非没有乘数)。

根据@gpasci的现有答案检查演示:http://jsfiddle.net/bozdoz/LMD7v/

相关问题