JS Event 鼠標拖拽事件


<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>JS Event鼠標拖拽事件</title>       
        <style>
            #box{width:200px;height:200px;background:#000;position:absolute;}
        </style> 

    </head>
    <body>

         <div id="box"></div>

         <script>
                 window.onload=function(){                                //onload  加載頁面;
                 var oBox=document.getElementById("box");       //找對象
                 document.onmousemove=function(ev){              //通常在document中添加事件,不在body中添加事件;添加onmousemove鼠標事件;綁定在事件的匿名函數,值可以有一個參數,並且它就是事件對象;
                     var l=ev.clientX;
                     var t=ev.clientY;
                     //console.log(l);                                             //控制台顯示鼠標的xy軸坐標
                     oBox.style.left=l+"px";
                     oBox.style.top=t+"px";                                //div盒子跟隨鼠標動,鼠標在document瀏覽器窗口中移動到哪,div盒子跟隨到哪
            };
          };
        </script>

    </body>

  </html>

 

=======================裝作是 華麗的分割線===============================================

//解決鼠標動盒子跟着動的問題,改為   鼠標點擊一下之后,盒子才跟着鼠標動

<script>
            window.onload=function(){               
                   var oBox=document.getElementById("box");
            
                   oBox.onmousedown=function(){
                        document.onmousemove=function(ev){        
                              var l=ev.clientX;
                             var t=ev.clientY;
                             //console.log(l);                         
                             oBox.style.left=l+"px";
                            oBox.style.top=t+"px";                   
                           };
                   };
           };
 </script>

 

=======================裝作是 華麗的分割線===============================================

//解決   鼠標點擊一下之后,盒子才跟着鼠標動 的問題,改為 鼠標左鍵點擊到div盒子之后開始挪動盒子,松開鼠標之后  盒子就不在動

        <script>
            window.onload = function() {
                var oBox = document.getElementById("box");

                oBox.onmousedown = function() {
                    document.onmousemove = function(ev) {
                        var l = ev.clientX;
                        var t = ev.clientY;
                        //console.log(l);                           
                        oBox.style.left = l + "px";
                        oBox.style.top = t + "px";
                    };
                    document.onmouseup=function(){
                        document.onmousemove=null;
                    };
                };
            };
        </script>

 

 

=======================裝作是 華麗的分割線===============================================

//解決  鼠標點擊盒子挪動 時候,盒子最左上角跳動到指針的位置 的問題;

 

        <script>
           
            window.onload = function() {
                var oBox = document.getElementById("box");
                oBox.onmousedown = function(ev) {
                    var disX=ev.clientX-oBox.offsetLeft;                  //計算X軸,div盒子左邊框與鼠標之間的距離
                    var disY=ev.clientY-oBox.offsetTop;                  //計算Y軸,div盒子上邊框與鼠標之間的距離   
                        
                        
                    document.onmousemove = function(ev) {
                        var l = ev.clientX-disX;                               //計算X軸,瀏覽器左邊窗口與div盒子左邊邊框的距離
                        var t = ev.clientY-disY;                              //計算Y軸,瀏覽器上邊窗口與div盒子上邊邊框的距離
                        console.log(l);
                        oBox.style.left = l + "px";
                        oBox.style.top = t + "px";
                    };
                    document.onmouseup = function() {
                    document.onmousemove = null;
                };
                
                    return false;                     //阻止默認事件的發生       
                };
                
            };
        </script>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM