为什么不使用Firefox在JavaScript中拖动图像?

问题描述 投票:0回答:1

我正在使用下面的代码来拖动图像(#StndSoln1)。它在Chrome和所有浏览器中都能完美运行,但在Firefox中却不能。在这里,startDrag()是我附加到mousedown事件侦听器的函数。谁能帮我。

function initialFunction(){


document.getElementById("StndSoln1").addEventListener('mousedown',startDrag,false);
document.getElementById("StndSoln1").addEventListener('mousemove',drag,false);
document.getElementById("StndSoln1").addEventListener('mouseup',stopDrag,false);


}


function startDrag()

{

if (!moveFlag){


currentTraget=document.getElementById("StndSoln1");

offsetX=currentTraget.offsetLeft;
offsetY=currentTraget.offsetTop;
ImgPlaced=false;    
moveFlag=true;

x=window.event.clientX;
y=window.event.clientY; 

event.preventDefault();
}
}

   // Fn for drag the current target object...
  function drag(){

if (moveFlag && !ImgPlaced){    
    currentTraget.style.left=(offsetX+window.event.clientX-x)+"px";
    currentTraget.style.top=(offsetY+window.event.clientY-y)+"px";
}
}
javascript firefox drag-and-drop mouseevent dom-events
1个回答
2
投票

我实际上遇到了类似的问题,因此即使没有您正在使用的代码,我也可以尝试提供帮助。

[请参阅,Firefox开发人员的想法很聪明,因此,当您拖动图像时,可以“移动”它,并可以将其放在资源管理器窗口中,以快速,轻松地将其下载到选项卡或选项卡栏在新标签页中打开图像。显而易见的缺点是,它导致其他浏览器没有默认行为。

简单的解决方案是确保所有事件都正确取消了默认操作(event.preventDefaultreturn false等)。如果同样失败,则应将<div>元素与background-image一起使用,而不是<img>元素。

© www.soinside.com 2019 - 2024. All rights reserved.