Javascript 昂德拉根顿';不要回到起始位置
我正在使用Javascript 昂德拉根顿';不要回到起始位置,javascript,jquery,html,drag-and-drop,draggable,Javascript,Jquery,Html,Drag And Drop,Draggable,我正在使用draggable='true'属性在我的网站中创建一个draggable元素,但我遇到了一个外观问题 拖动基本上是为了重新排列元素,所以我想把它们捡起来,拖动到新的位置,然后简单地将它们释放到新的位置,但是一旦我放开,元素就会滑回原来的位置,然后再移动到新的位置 请参见此图: 我怎样才能避免这种情况发生?我想跳过“返回”部分 编辑: 已确认此问题已本地化到Mac。这与整个窗口的反弹效果非常相似。我尝试使用jquery编写您想要的代码。 --> 可以拖动具有类.drag\u i
draggable='true'
属性在我的网站中创建一个draggable元素,但我遇到了一个外观问题
拖动基本上是为了重新排列元素,所以我想把它们捡起来,拖动到新的位置,然后简单地将它们释放到新的位置,但是一旦我放开,元素就会滑回原来的位置,然后再移动到新的位置
请参见此图:
我怎样才能避免这种情况发生?我想跳过“返回”部分
编辑:
已确认此问题已本地化到Mac。这与整个窗口的反弹效果非常相似。我尝试使用jquery编写您想要的代码。
-->
可以拖动具有类
.drag\u item
的元素。如果将其释放到不在具有class的元素区域的任何位置。释放区域
,它将返回到之前的位置。我希望这是你想要的。如果你对这个代码有任何问题,请问我:D
更新了我尝试了很多次,现在我有了解决方案
$('div[class=dragable]').on('dragend',function(e){
$(this).css('top',e.originalEvent.pageY-($(this).height()/2));
$(this).css('left',e.originalEvent.pageX-($(this).width()/2));
});
拖动鼠标时,我无法获得位置(我得到的位置是开始拖动之前元素的原始位置”)因此,唯一的方法(到目前为止,我已经测试过)是在您放下鼠标时获得鼠标的位置,并且
设置
左
和上
与鼠标的位置相同。
我只在Chrome上测试过。无论如何,我不建议你这么做。
ondragstart
,ondragend
,ondragenter
,ondragleef
,等等都是@David oh列出的拖动事件下的Javascript事件,我从未见过。谢谢你提供的信息:)
$('div[class=dragable]').on('dragend',function(e){
$(this).css('top',e.originalEvent.pageY-($(this).height()/2));
$(this).css('left',e.originalEvent.pageX-($(this).width()/2));
});