zoukankan      html  css  js  c++  java
  • 简易拖拽

    onmousedown:存储距离

    onmousemove:根据距离,计算div最新位置

    问题1:当鼠标移动过快脱离div,此时div不会跟随鼠标移动

    解决:改为document.onmouseover

    问题2:当鼠标移动div超出浏览器可视区范围,此时找不到div

    解决:应判断div是否移动超出可视区范围,若超出,则将div的左边距置为0,右边和顶部底部同理

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4 <meta charset="utf-8">
     5 <script type="text/javascript">
     6 window.onload=function(){
     7     var oDiv1=document.getElementById("div1");
     8     var disX=0;
     9     var disY=0;
    10     oDiv1.onmousedown=function(ev){
    11         oEvent=ev||event;
    12         disX=oEvent.clientX-oDiv1.offsetLeft;
    13         disY=oEvent.clientY-oDiv1.offsetTop;
    14         document.onmousemove=function(ev){
    15             oEvent=ev||event;
    16             var l=oEvent.clientX-disX;
    17             var t=oEvent.clientY-disY;
    18             //判断用户拖拽是否拖出浏览器可视区
    19             if(l<0)
    20                 l=0;
    21             else if(l>document.documentElement.clientWidth-oDiv1.offsetWidth)
    22                 l=document.documentElement.clientWidth-oDiv1.offsetWidth;
    23             if(t<0)
    24                 t=0;
    25             else if(t>document.documentElement.clientHeight-oDiv1.offsetHeight)
    26                 t=document.documentElement.clientHeight-oDiv1.offsetHeight;
    27 
    28             oDiv1.style.left=l+'px';
    29             oDiv1.style.top=t+'px';
    30         };
    31         document.onmouseup=function(){
    32             document.onmousemove='null';
    33             document.onmouseup='null';
    34         }
    35         return false;
    36     };
    37 };
    38 </script>
    39 <style>
    40 
    41 #div1{
    42     width:100px;
    43     height:80px;
    44     background:#ccc;
    45     position:absolute;
    46 }
    47 
    48 </style>
    49 </head>
    50 <body>
    51 <div id="div1"></div>
    52 
    53 </body>
    54 </html>
  • 相关阅读:
    HTML-标题
    HTML-属性
    HTML-元素
    前端 vue Request Payload VS Form Data
    JWT,Session、Cookie(httpOnly,secure) 登录认证
    js 定位当前城市(ip,省份,城市,邮编)接口定位(搜狐、新浪、百度、腾讯API)
    sqlsugar 使用汇总
    asp.net 跨域
    asp.net core程序发布(Webapi,web网站)
    .net 多线程发展1.0--4.0
  • 原文地址:https://www.cnblogs.com/l0520/p/6821007.html
Copyright © 2011-2022 走看看