javascript - 图片拖动无法触发 mouseup 事件
本文介绍了javascript - 图片拖动无法触发 mouseup 事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
我想实现图片拖动功能,但是图片拖动后无法触发 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里是正常的,但是用火狐试了一下好像就有问题了,拖拽的时候选中到了图片,会打开新窗口(可能和浏览器设置有关)。
综上,尝试处理掉拖拽的默认事件,加入
function imgdragstart() {
return false;
}
for (i in document.images) document.images[i].ondragstart = imgdragstart;
在火狐中也测试通过了。楼主可以参考一下行不行
这篇关于javascript - 图片拖动无法触发 mouseup 事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文