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以下浏览器事件的默认行为

  • 相关阅读:
    常用脚本语言Perl,Python,Ruby,Javascript一 Perl,Python,Ruby,Javascript
    Android中Linux suspend/resume流程
    Linux计算机进程地址空间与内核装载ELF
    Linux操作系统工作的基础
    Tomcat 系统架构与设计模式,第 2 部分: 设计模式分析
    基础算法题
    多模式字符串匹配(转)
    二叉树题集
    概率及数学题
    字符串算法题
  • 原文地址:https://www.cnblogs.com/zhanghua-zh/p/10320319.html
Copyright © 2011-2022 走看看