我想实现图片拖动功能,但是图片拖动后无法触发 mouseup 事件,代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>event</title>
<style>
#box {
width: 100px;
height: 100px;
position: fixed;
}
</style>
</head>
<body>
<div><img id='box' src='http://avatar.csdn.net/C/E/8/1_qq_33665647.jpg'></div>
<script type="text/javascript">
var oDiv = document.getElementById("box");
oDiv.onmousedown=function(ev)
{
var oEvent = ev;
var disX = oEvent.clientX - oDiv.offsetLeft;
var disY = oEvent.clientY - oDiv.offsetTop;
document.onmousemove=function (ev)
{
oEvent = ev;
oDiv.style.left = oEvent.clientX -disX+"px";
oDiv.style.top = oEvent.clientY -disY+"px";
}
document.onmouseup=function()
{
document.onmousemove=null;
document.onmouseup=null;
}
}
</script>
</body>
</html>
改用 drag 事件也无法解决问题:
加上以下一句:
oDiv.ondragend=document.onmouseup;
则无法连续拖动。
咋办呢?
我直接复制代码在chrome里是正常的,但是用火狐试了一下好像就有问题了,拖拽的时候选中到了图片,会打开新窗口(可能和浏览器设置有关)。
综上,尝试处理掉拖拽的默认事件,加入
在火狐中也测试通过了。楼主可以参考一下行不行