zoukankan      html  css  js  c++  java
  • 拖拽效果

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>拖拽效果</title>
    </head>
    <style>
        body {
            background: skyblue;
        }
        #wrap {
            margin: 50px auto;
            width: 400px;
            height: 400px;
            border: 8px #b1b8e0 solid;
            background: #e9eff8;
            position: relative;
        }
        #drag {
            width: 50px;
            height: 50px;
            border: 8px #eb651d;
            background: #9de4ec;
            position: absolute;
            top: 0;
            left: 0;
        }
    </style>
    <body>
        <div id="wrap">
            <div id="drag"></div>
        </div>
        <!-- ================================================================================================================================= -->
        <script>
            var wrap = document.getElementById('wrap');
            var drag = document.getElementById('drag');
    
            drag.onmousedown = function(event){
                var event = event || window.event;//后者为IE
                //clientX获取鼠标距左窗口的距离
                //offsetLeft待移动对象的左外边距
                //tmpX作用在待移动对象上的鼠标到待移动对象左边距的距离
                var tmpX = event.clientX - drag.offsetLeft;
                var tmpY = event.clientY - drag.offsetTop;
                //取消默认行为
                if(event.preventDefault){
                    event.preventDefault();
                }else{
                    event.returnValue = false;
                }
                document.onmousemove = function(event){
                    var event = event || window.event;
                    //endX移动后对象的左边到左窗口的距离
                    //clientWidth = width + padding
                    //offsetWidth = width + padding + border
                    //简单的说mouseX = 大框的宽度 -(小框的宽度+内外边距)
                    var endX = event.clientX - tmpX;
                    var endY = event.clientY - tmpY;
                    var mouseX = wrap.clientWidth - drag.offsetWidth;
                    var mouseY = wrap.clientHeight - drag.offsetHeight;
    
                    if(endX >= mouseX){
                        endX = mouseX;
                    }
                    if(endX <= 0){
                        endX = 0;
                    }
                    if(endY >= mouseY){
                        endY = mouseY;
                    }
                    if(endY <= 0){
                        endY = 0;
                    }
                    drag.style.left = endX + 'px';
                    drag.style.top = endY + 'px';
                }
    
            }
            //鼠标抬起时清空移动操作
            document.onmouseup = function(){
                document.onmousemove = null;
            }
        </script>
    </body>
    </html>

    效果图:

  • 相关阅读:
    驱动表
    将索引移动到别的表空间
    log file sync, log file parallell write
    Full Hint
    4wpa_supplicant适配层 详解
    wifi 驱动 进阶11
    wifi 驱动 进阶11
    基于linux2.6.38.8内核的SDIO/wifi驱动分析
    6wpa_supplicant无线网络配置
    2系统启动后的 wifi加载 过程图解
  • 原文地址:https://www.cnblogs.com/kewenxin/p/5939643.html
Copyright © 2011-2022 走看看