zoukankan      html  css  js  c++  java
  • 拖拽demo--兼容--全局捕获

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            * {
                margin: 0;
                padding: 0;
            }
    
            html,
            body {
                height: 100%;
                overflow: hidden;
            }
    
            #box {
                position: absolute;
                width: 150px;
                height: 150px;
                background-color: orangered;
            }
        </style>
    </head>
    
    <body>
        略略略
        <div id="box"></div>
    
        <script>
            window.onload = function () {
                var box = document.getElementById("box");
    
                box.onmousedown = function (e) {
                    e = e || window.event;
                    var mouseDownPoint = { "x": 0, "y": 0 };
                    var boxStartPoint = { "x": 0, "y": 0 };
    
                    boxStartPoint.x = this.offsetLeft;
                    boxStartPoint.y = this.offsetTop;
    
                    mouseDownPoint.x = e.clientX;
                    mouseDownPoint.y = e.clientY;
    
                    // 使用全局捕获,阻止ie8以下浏览器事件的默认行为
                    if (this.setCapture) {
                        this.setCapture();
                    }
    
                    document.onmousemove = function (e) {
    
                        e = e || window.event;
                        var mouseMovePoint = { "x": 0, "y": 0 };
    
                        mouseMovePoint.x = e.clientX;
                        mouseMovePoint.y = e.clientY;
    
                        box.style.left = mouseMovePoint.x - mouseDownPoint.x + boxStartPoint.x + "px";
                        box.style.top = mouseMovePoint.y - mouseDownPoint.y + boxStartPoint.y + "px";
    
                        return false; // 无法禁止ie8以下浏览器事件的默认行为
                    }
    
                    document.onmouseup = function () {
                        document.onmousemove = document.onmouseup = null;
                        
                        if (document.releaseCapture) { // 取消全局捕获
                            document.releaseCapture();
                        }
    
                    }
                }
            }
        </script>
    </body>
    
    </html>

    兼容ie8,使用全局捕获,阻止ie8以下浏览器事件的默认行为

  • 相关阅读:
    Linux嵌入式 -- 内核
    Linux嵌入式 -- 内核
    utf8和utf8mb4区别
    二叉树的实现
    python资源大全2
    树与树算法
    二叉树
    70.最小生成树
    68.营救问题(广搜)
    67.迷宫问题(广搜)
  • 原文地址:https://www.cnblogs.com/zhanghua-zh/p/10320319.html
Copyright © 2011-2022 走看看