• JavaScript 实现拖拽


    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            * {
                margin: 0;
                padding: 0;
            }
    
            #div1 {
                width: 100px;
                height: 100px;
                background: #0000FF;
                border: 1px solid black;
                position: absolute;
            }
        </style>
    
        <script>
            window.onload = function () {
                var oDiv = document.getElementById('div1');
                drag(oDiv,1);
            }
    
            /**
             * @todo 拖拽元素在页面上移动
             * @param node 要拖拽的元素
             * @param flag 是否限制出界 0-不限制 1-限制
             */
            function drag(node, flag) {
                /*
                    mousedown
                        // 获取鼠标相对于拖拽元素的位置
                        var offsetX = e.clientX - node.offsetleft;
                        var offsetY = e.clientY - node.offsettop;
                    mousemove
                        // 先获取鼠标相对于窗口的位置,然后减去相对于元素的位置,赋值给元素的左上
                        var nodeOffsetX = e.clientX - offsetX;
                        var nodeOffsetY = e.clientY - offsetY;
    
                        node.style.left = nodeOffsetX + 'px';
                        node.style.top = nodeOffsetY + 'px;
                    mouseup
                        取消拖拽
                 */
    
                window.onmousedown = function (eve) {
                    var e = eve || window.event;
                    var offsetX = e.clientX - node.offsetLeft;
                    var offsetY = e.clientY - node.offsetTop;
    
                    document.onmousemove = function (ev) {
                        var e1 = ev || window.event;
                        var nodeOffsetX = e1.clientX - offsetX;
                        var nodeOffsetY = e1.clientY - offsetY;
                        if (flag) {
                            // 获取窗口的宽
                            var windowWidth = document.documentElement.clientWidth || document.body.clientWidth;
                            // 获取窗口的高
                            var windowHeight = document.documentElement.clientHeight || document.body.clientHeight;
    
                            if (nodeOffsetX < 0) {
                                nodeOffsetX = 0;
                            }
                            if (nodeOffsetX >= windowWidth - node.offsetWidth) {
                                nodeOffsetX = windowWidth - node.offsetWidth;
                            }
    
                            if (nodeOffsetY < 0) {
                                nodeOffsetY = 0;
                            }
    
                            if (nodeOffsetY >= windowHeight - node.offsetHeight) {
                                nodeOffsetY = windowHeight - node.offsetHeight;
                            }
                        }
                        node.style.left = nodeOffsetX + 'px';
                        node.style.top = nodeOffsetY + 'px';
                    }
                }
                document.onmouseup = function () {
                    document.onmousemove = null;
                }
            }
        </script>
    </head>
    <body>
    <div id="div1"></div>
    </body>
    </html>
  • 相关阅读:
    Python爬虫-05:Ajax加载的动态页面内容
    Python爬虫-04:贴吧爬虫以及GET和POST的区别
    Python-爬虫03:urllib.request模块的使用
    Python Numpy-基础教程
    8皇后算法
    迷宫算法
    归并排序
    查找算法
    排序算法
    设计模式
  • 原文地址:https://www.cnblogs.com/lxhyty/p/14433704.html
Copyright © 2020-2023  润新知