您好,登錄后才能下訂單哦!
小編給大家分享一下jQuery如何實現div跟隨鼠標移動,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
重點是弄清楚如何獲取鼠標現位置與移動后位置,div現在位置與移動后位置:
用jQuery實現div隨鼠標移動而移動,不是鼠標自身的位置!!而是div相對于之前位置的移動
代碼如下:(注意看綠色部分的解釋)
<!DOCTYPE html> <html> <head> <meta charset="{utf-8}"> <title></title> <script src="../jquery-3.2.0.js"></script> <style> .aa{ height: 100px; width: 200px; position: absolute; background-color: green; } </style> </head> <body> <div class="aa"></div> </body> </html> <script> $(".aa").mousedown(function(e){ //設置移動后的默認位置 var endx=0; var endy=0; //獲取div的初始位置,要注意的是需要轉整型,因為獲取到值帶px var left= parseInt($(".aa").css("left")); var top = parseInt($(".aa").css("top")); //獲取鼠標按下時的坐標,區別于下面的es.pageX,es.pageY var downx=e.pageX; var downy=e.pageY; //pageY的y要大寫,必須大寫!! // 鼠標按下時給div掛事件 $(".aa").bind("mousemove",function(es){ //es.pageX,es.pageY:獲取鼠標移動后的坐標 var endx= es.pageX-downx+left; //計算div的最終位置 var endy=es.pageY-downy+top; //帶上單位 $(".aa").css("left",endx+"px").css("top",endy+"px") }); }) $(".aa").mouseup(function(){ //鼠標彈起時給div取消事件 $(".aa").unbind("mousemove") }) </script>
區別于下面這段代碼:(最終實現效果是div隨鼠標位置移動,具體效果想看的可以粘貼復制對比看看差距在哪)
<script> $(".aa").mousedown(function(e){ $(document).bind("mousemove",function(e){ $(".aa").css("left",e.pageX).css("top",e.pageY) }); }) $(".aa").mouseup(function(){ $(document).unbind("mousemove") }) </script>
看完了這篇文章,相信你對“jQuery如何實現div跟隨鼠標移動”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。