zoukankan      html  css  js  c++  java
  • javascript拖拽

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title>拖拽</title>
    </head>
    <style>
        #div1{width: 200px;height: 200px;background-color: red;position: absolute; padding:30px;border: 2px solid #000000;}
        .box{border: 1px dashed black;position: absolute;}
    </style>
    <body>
    <div id="div1"></div>
    <script>
        window.onload = function(){
            var oDiv = document.getElementById("div1");
    
            var disX=0,disY=0;
    
            oDiv.onmousedown = function(ev){
                var oEvent = ev||event;
    
                disX = oEvent.clientX - oDiv.offsetLeft;
                disY = oEvent.clientY - oDiv.offsetTop;
    
                var oBox = document.createElement("div");
                oBox.className = "box";
                oBox.style.width = oDiv.offsetWidth-2 + "px";//减去边框
                oBox.style.height = oDiv.offsetHeight-2 + "px";
    
                //下面两行防止div移动后再次点击时会自动生成一个在原div位置的虚线框
                oBox.style.left = oDiv.offsetLeft + "px";
                oBox.style.top = oDiv.offsetTop + "px";
    
                document.body.appendChild(oBox);
    
    
                document.onmousemove = function(ev){
                    var oEvent = ev||event;
    
                    var l = oEvent.clientX-disX;
                    var t = oEvent.clientY-disY;
                    //这里可以用来做磁性吸附
                    if(l<0){l = 0;}else if(l>document.documentElement.clientWidth - oDiv.offsetWidth){ l = document.documentElement.clientWidth - oDiv.offsetWidth; }
                    if(t<0){t = 0;}else if(t>document.documentElement.clientHeight - oDiv.offsetHeight){ t = document.documentElement.clientHeight - oDiv.offsetHeight;}
    
    
    
                    oBox.style.left = l + "px";
                    oBox.style.top = t + "px";
                }
    
                document.onmouseup = function(){
                    document.onmousemove = null;
                    document.onmouseup = null;
    
                    oDiv.style.left = oBox.offsetLeft+"px";
                    oDiv.style.top = oBox.offsetTop+"px";
                    document.body.removeChild(oBox);
    
                }
    
    
                return false;//firefox某些版本下会出现鬼影现象,阻止默认事件(浏览器bug)
            }
    
    
        }
    </script>
    </body>
    </html>
  • 相关阅读:
    Idea导入tomcat源码
    SpringBoot学习 (一) Eclipse中创建新的SpringBoot项目
    Zookeeper客户端Curator使用详解
    解决老是提示找不到Mapper文件无法执行定义的方法问题!
    人工智能、机器学习、深度学习三者之间的关系
    java5增加对https的支持
    Spring静态注入的三种方式
    Thrift入门及Java实例演示【转】
    activeMQ 学习
    python中 import 和from ... import 的区别
  • 原文地址:https://www.cnblogs.com/isuben/p/5333723.html
Copyright © 2011-2022 走看看