zoukankan      html  css  js  c++  java
  • 完美拖拽(点击回放运动轨迹)

    <!DOCTYPE html>

    <html>
    <head>
        <meta charset="utf-8">
        <title>完美拖拽</title>
        <style type="text/css">
            html,body{overflow:hidden;}
            body,div,h2,p{margin:0;padding:0;}
            body{color:#fff;background:#000;font:12px/2 Arial;}
            p{padding:0 10px;margin-top:10px;}
            span{color:#ff0;padding-left:5px;}
            #box{position:absolute;300px;height:150px;background:#333;border:2px solid #ccc;top:50%;left:50%;margin:-75px 0 0 -150px;}
            #box h2{height:25px;cursor:move;background:#222;border-bottom:2px solid #ccc;text-align:right;padding:0 10px;}
            #box h2 a{color:#fff;font:12px/25px Arial;text-decoration:none;outline:none;}
        </style>
    </head>
    <body>
        <div id="box" style="margin-left: 0px; margin-top: 0px; left: 533px; top: 231px;">
         <h2><a href="javascript:;" id="a1">点击回放拖动轨迹</a></h2>
         <p><strong>Drag:</strong><span>false</span></p>
         <p><strong>offsetTop:</strong><span>231</span></p>
         <p><strong>offsetLeft:</strong><span>533</span></p>
        </div>
    </body>
    </html>
    <script>
        window.onload = function(){
         var oDiv = document.querySelector("#box");
         var oA1 = document.getElementById("a1");
         var arr = [];
        
            oDiv.onmousedown = function(e){
                var e = e || event;
                var disx = e.offsetX;
                var disy = e.offsetY;
                document.onmousemove = function(e){
                    var e = e || event;
                    var x = e.pageX - disx;
                    var y = e.pageY - disy;
                    var maxL = window.innerWidth - 300;//最大的left
                    var maxT = window.innerHeight- 150;//最大的top
                    if( x<0 ){ //左边界
                        x = 0;
                    }else if( x > maxL ){ //右边界
                        x = maxL;
                    }
                    if( y<0 ){ //上边界
                        y = 0;
                    }else if( y > maxT ){ // 下边界
                        y = maxT;
                    }
                    oDiv.style.left = x + "px";
                    oDiv.style.top = y + "px";
                    var pos = {
                        aleft : x,
                        atop : y
                    }
                    arr.unshift( pos );
                    
                }   
                document.onmouseup = function(){
                    document.onmousemove = null;
                    oA1.onclick = function(){
                        var num=0;
                        var timer = null;                                       
                        timer = setInterval(function(){
                            oDiv.style.left = arr[num].aleft + "px";
                            oDiv.style.top = arr[num].atop + "px";
                            num++;
                            if(num == arr.length){
                                clearInterval(timer);
                                arr = [];
                                return;
                            }   
                        },100); 
                    };
                }   
            }   
        }
    </script>
  • 相关阅读:
    jquery的ztree操作
    原创-使用pywinauto和swapy-ob-0.4.3进行dotnet的winform程序控制(二)
    原创-使用pywinauto进行dotnet的winform程序控制(一)
    javascript“命名空间”的费曼输出[原创]
    IIS7上传4M文件以上文件出现“Post大小超出允许的限制”错误解决方法
    OpenProj打开不了或者提示”Failed to load Java VM Library”的错误的解决方案
    项目管理中,开始到完成、完成到开始、开始到开始、和完成到完成的关系图解
    我的项目管理之干系人分析在单位项目中的运用
    关于学习js的Promise的心得体会
    vue.js与后台模板引擎“双花括号”冲突时的解决办法
  • 原文地址:https://www.cnblogs.com/tis100204/p/10319216.html
Copyright © 2011-2022 走看看