我正在使用draggable='true'
属性在我的网站中创建一个可拖动元素,但我遇到了一个整容问题。
拖动基本上是为了重新排序元素,所以我想把它们拿起来,将它们拖到新的位置,然后简单地将它们释放到新的位置,但是一旦我松开,元素就会向后滑动在搬到新职位之前,它的原始位置。
看到这张图片:
如何防止这种情况发生?我想跳过“回去”部分。
$("div").on('dragend', function(e){
e.preventDefault();
e.stopPropagation();
$("div.slide.placeholder").replaceWith($(this));
updateSlides();
})
此问题已确认为已本地化为Mac。它与整个窗口反弹效果非常相似。
答案 0 :(得分:1)
我尝试用jquery编写你想要的东西。
- > http://jsfiddle.net/oLc2f3kp
可以删除具有类.drag_item
的元素。如果你将它释放到不在具有类.release_area
的元素区域的任何地方,它将返回到之前的位置。
我希望这就是你想要的。如果您对此代码有任何疑问,请问我: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));
});
我在拖动它时无法获得该位置(我得到的位置是在开始拖动之前元素的原始位置“)所以唯一的方法(到目前为止我已经测试过)是在放下鼠标时获取鼠标的位置,并设置left
和top
与鼠标的位置相同。
我只在Chrome中测试过。无论如何我不建议你这样做。