【发布时间】:2012-02-25 05:47:02
【问题描述】:
我正在寻找一种使用 jQueryUI 可拖动插件(类似于 this effect)来模拟阻力的方法。在它提到的可拖动文档的底部:
“要在拖动过程中操纵可拖动对象的位置,您可以 使用包装器作为可拖动帮助器并定位被包装的元素 使用绝对定位,或者您可以像这样更正内部值: $(this).data('draggable').offset.click.top -= x”。
几何不是我的强项 我正在寻求帮助,以了解如何在拖动某物时最好地实现阻力效果。我认为使用上面的这个技巧,我可以使用几何函数更改可拖动对象的移动距离。我不确定最好的术语是阻力还是弹性,但我正在寻找一种感觉,好像一个元素通过橡皮筋或弹力绳连接到一个点,这样你拖得越远,物体移动得越少.
例如,假设我想拖动一个对象总距离为 500 像素(在任何方向上)。我希望电阻效果增加离我得到的起点更近 500 像素。我环顾四周,并没有看到这样的东西。
更新:
我创建了一个基本的 jsFiddle 来计算项目在http://jsfiddle.net/Z8m4B/处被拖动的距离
计算是:
var x1=x2=y1=y2=0;
$("#draggable").draggable({
start: function(e, ui) {
y1 = ui.position.top;
x1 = ui.position.left;
},
stop: function(e, ui) {
y2 = ui.position.top;
x2 = ui.position.left;
dist = parseInt(Math.sqrt(Math.pow((x2-x1),2)+Math.pow((y2-y1),2)), 10);
console.log(dist);
}
});
显然我想在拖动事件期间而不是在停止时更改距离。有谁知道如何产生这种阻力或拉伸效果?
【问题讨论】:
-
一开始,你可以使用而不是停止事件拖动jqueryui.com/demos/draggable/#event-drag
标签: javascript jquery-ui geometry draggable