javascript - 图片拖动无法触发 mouseup 事件

查看:603
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆