Javascript 移动触摸事件的Dragable:true/false的等效值是什么?
我有一个用JavaScript构建的拖放游戏。一旦一个元素被拖动到某个区域,我不希望用户能够拿起它再次拖动它。draggable元素是一个具有Javascript 移动触摸事件的Dragable:true/false的等效值是什么?,javascript,events,mobile,touch,draggable,Javascript,Events,Mobile,Touch,Draggable,我有一个用JavaScript构建的拖放游戏。一旦一个元素被拖动到某个区域,我不希望用户能够拿起它再次拖动它。draggable元素是一个具有draggable:true属性和一些绝对值x-y位置的图像,如下所示: function moveDrop(e) image = e.target; if ( image.style.left > "600") { image.style.pointerEvents = "none";
draggable:true
属性和一些绝对值x-y位置的图像,如下所示:
function moveDrop(e)
image = e.target;
if (
image.style.left > "600") {
image.style.pointerEvents = "none";
}
拖动后(在桌面的drop
事件和移动设备的touchend
事件上),如果新的x坐标(左属性)大于“600”,我使用JavaScript将图像的draggable
属性更改为false
:
function moveDrop(e)
image = e.target;
if (
image.style.left > "600") {
image.setAttribute("draggable", "false");
}
这在桌面上非常有效。一旦我将图像放置到超过600px标记的任何位置,我就无法再次单击并拖动它
但是,它在移动设备上不起作用。即使新的x坐标大于600,我仍然可以再次触摸和拖动图像。我是否可以在上面的代码中添加一行代码,使图像对未来的触摸事件“无响应”,类似于draggable:false
我尝试在touchstart
事件中添加一个“if”语句,希望touchstart
和touchsmove
函数只有在左值小于600时才会运行。然而,这使得我可以将图像拖到600,然后它就不会让我继续拖到600以上(如果用户愿意,应该可以拖到900)
如果有必要,我可以提供完整的代码,但我希望有一个简单的补丁可以添加到
touchend
功能中,以防止将来在移动设备上拖动。解决了这个问题。如果我添加CSS样式指针事件:none,我就能够防止将来在元素上发生触摸事件代码>到mytouchend
函数,如下所示:
function moveDrop(e)
image = e.target;
if (
image.style.left > "600") {
image.style.pointerEvents = "none";
}