火狐浏览器,H5拖拽时跟随鼠标跑偏的问题

无标题.png

<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
#div1 {width:198px; height:66px;padding:10px;border:1px solid #aaaaaa;}
</style>
<script type="text/javascript">
function allowDrop(ev)
{
ev.preventDefault();
}
function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}
function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>
<p>请把 W3School 的图片拖放到矩形中:</p>
<div style="transform: translate(-100px, 0px);margin-left:150px">
<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<img id="drag1" src="https://box.bdimg.com/static/fisp_static/common/img/searchbox/logo_news_276_88_1f9876a.png" draggable="true" ondragstart="drag(event)" />
</div>    
</body>
</html>

用这段简单的代码试试吧,
只有在火狐浏览器下 拖动图片时跑偏的问题 怎么解决呢?

阅读 2.5k
1 个回答

浏览器兼容性问题
拖动跑偏
是因为div上的样式导致的

transform: translate(-100px, 0px)

位移的样式是写在div上的
但是img是没有设置位移属性的
没有拖动前,图片包裹在div中,所以根据div的位置调整
拖动的时候,图片回到原位(就是你看到的跑偏的位置了)

解决方法:
img标签上加上

style="transform: translate(-100px, 0px);margin-left:100px"
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题