也许这个问题本身没有多大意义,所以让我解释一下...... 我正在开发一个交互式地图应用程序,除了其他功能之外,它还允许您在放大时移动地图。只需单击并拖动即可。这个功能是通过使用jQuery-UI完成的。
我的问题是,默认情况下,拖动的因子为1.这意味着将光标移动1个像素会将地图拖动1个像素。我需要的是有一个'乘数'(可能在1-10的范围内),这样通过将光标移动1个像素,地图将拖动乘数的值(以像素表示)。 我怎么能这样做仍然依赖于jQuery-UI插件?
由于
答案 0 :(得分:3)
答案 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/