zoukankan      html  css  js  c++  java
  • 拖拽--吸附

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title>拖拽--吸附效果</title>
     6         <style>
     7             #div1{
     8                 width: 100px;
     9                 height: 100px;
    10                 background: red;
    11                 position: absolute;
    12             }
    13             #div2{
    14                 width: 700px;
    15                 height: 500px;
    16                 background: #ccc;
    17                 position: relative;
    18             }
    19             #div1:hover{
    20                 cursor: pointer;
    21             }
    22         </style>
    23     </head>
    24     <body>
    25         <div id="div2">
    26             <div id="div1"></div>
    27         </div>
    28         <script>
    29             var oDiv = document.getElementById('div1');
    30             var oDiv2 = document.getElementById('div2');
    31             
    32             var disX = 0;    //鼠标的横向距离
    33             var disY = 0;     //鼠标的纵向距离
    34             
    35             oDiv.onmousedown = function(ev){
    36                 var oEvent = ev || event;
    37                 disX = oEvent.clientX - oDiv.offsetLeft;
    38                 disY = oEvent.clientY - oDiv.offsetTop;
    39                 
    40                 document.onmousemove = function(ev){
    41                     var oEvent = ev || event;
    42                     var l = oEvent.clientX - disX;   //div1的横向距离
    43                     var t = oEvent.clientY - disY;   ////div1的纵向距离
    44                     
    45                     if(l<50){   //div1从div2左边被拖出去   吸附效果
    46                         l = 0;
    47                     }else if(l > oDiv2.offsetWidth - oDiv.offsetWidth){
    48                         l = oDiv2.offsetWidth - oDiv.offsetWidth;
    49                     }
    50                     if(t<50){   //div1从div2上边被拖出去
    51                         t = 0;
    52                     }else if(t>oDiv2.offsetHeight - oDiv.offsetHeight){
    53                         t = oDiv2.offsetHeight - oDiv.offsetHeight;
    54                     }
    55                     
    56                     //根据最新的鼠标坐标来确定div的坐标
    57                     oDiv.style.left = l + 'px';
    58                     oDiv.style.top = t + 'px';
    59                 }
    60                 
    61                 document.onmouseup = function(ev){
    62                     document.onmousemove = null;
    63                     document.onmouseup = null;
    64                 }
    65                 
    66                 //解决火狐拖拽的bug,取消默认事件
    67                 return false;
    68             }
    69         </script>
    70     </body>
    71 </html>
  • 相关阅读:
    IDEA调试快捷键
    视频预览
    文件上传:简单的demo
    Java 运行时优化
    Java 类加载
    Java StringTable
    Java 为什么不用Vector
    C++ 查找函数
    JVM 垃圾回收
    JVM 直接内存
  • 原文地址:https://www.cnblogs.com/panda-ling/p/6699973.html
Copyright © 2011-2022 走看看