站長資訊網
        最全最豐富的資訊網站

        js實現模擬鼠標拖拽事件(附圖文實例)

        本文實例為大家分享了JavaScript實現鼠標拖拽效果的具體代碼,供大家參考,具體內容如下

        這次的效果圖如下:

        js實現模擬鼠標拖拽事件(附圖文實例)

        我認為這個實驗的難點是保持盒子和鼠標的相對位置不變,通過鼠標按下和移動來實現拖拽的效果

        如何實現拖拽的效果呢?

        我們需要用到三個函數: onmousedownonmousemoveonmouseup,分別表示鼠標按下、鼠標移動、鼠標抬起

        鼠標按下的回調函數中,我們需要通過clientXclientY獲取鼠標的初始位置,通過offsetLeftoffsetTop獲取盒子的初始位置,然后計算鼠標初始位置和盒子初始位置的差值;

        鼠標移動的回調函數中,我們需要根據鼠標的位置和之前計算得到的差值來獲取盒子現在的位置,然后改變其left和top值,不要忘記將position設置為absolute(因為我就忘記了。。。)

        鼠標抬起的回調函數中,我們需要清除鼠標移動和鼠標抬起,通過將onmousemoveonmouseup值設置為null即可

        還要注意?。?!

        鼠標移動函數和抬起函數均要寫在鼠標按下函數中,因為我們是要在鼠標按下這個動作之后來設計之后的行為,而且很重要的一點是:

        鼠標按下函數是p的,鼠標移動和鼠標抬起是document的

        因為我們的意思并不是鼠標在p中移動,而是在整個頁面移動

        重點大概是這些了,下面是代碼:

        <!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Document</title>     <style>         #box{             width: 100px;             height: 100px;             background-color: aquamarine;             border-radius: 14px;             box-shadow: 2px 2px 6px rgba(0,0,0,.3);              /* 好家伙 都沒設置定位  就想移動 改變left。。。 */             position: absolute;         }     </style> </head> <body>     <div id="box"></div>     <script>         let box=document.getElementById("box");         box.onmousedown=function(event){             let disx=event.clientX-box.offsetLeft;             let disy=event.clientY-box.offsetTop;             //此處不是box.onmousemove,是document.onmousemove             document.onmousemove=function(event){                 box.style.left=event.clientX-disx+'px';                 box.style.top=event.clientY-disy+'px';             }              //要寫在ommousedown里面             document.onmouseup=function(){                 //這倆都要置為null             document.onmousemove=null;             document.onmouseup=null;             return false;         }         }              </script> </body> </html>

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 人妻熟妇乱又伦精品视频| 中文字幕精品亚洲无线码一区 | 少妇精品久久久一区二区三区| 国产精品久久久久久搜索| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 国产精品美女久久久久AV福利| 亚洲国产精品无码久久久秋霞2 | 亚洲精品tv久久久久久久久久| 91精品国产品国语在线不卡 | 国产91在线精品| 国产精品一区二区av| 欧美精品xxxxbbbb| 99久久精品免费国产大片| 国产亚洲色婷婷久久99精品| 无码精品人妻一区二区三区免费| 中文精品一卡2卡3卡4卡| 99久久久精品免费观看国产| 亚洲av永久无码精品国产精品| 久久精品成人欧美大片| 国产福利电影一区二区三区,欧美国产成人精品一 | 国产精品久久久久aaaa| 久久久久久九九99精品| 亚洲午夜成人精品电影在线观看| 国产精品亚洲视频| 亚洲精品在线观看视频| 国产福利91精品一区二区三区| 久久影院综合精品| 欧美精品亚洲精品日韩传电影| 欧美成人精品第一区二区三区| 久久精品国产99国产电影网| 精品久久久久久无码专区不卡| 中文字幕日韩精品无码内射| 日本精品少妇一区二区三区| 国产精品哟女在线观看| 粉嫩精品美女国产在线观看| 国产精品久久久久乳精品爆 | 无码aⅴ精品一区二区三区浪潮| 无码乱码观看精品久久| 无码精品第一页| 亚洲精品无码Av人在线观看国产| 久久久久这里只有精品|