溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

js實(shí)現(xiàn)鼠標(biāo)拖拽效果

發(fā)布時(shí)間:2020-05-18 11:47:10 來源:億速云 閱讀:238 作者:Leah 欄目:web開發(fā)

這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)鼠標(biāo)拖拽效果,文中示例代碼介紹的非常詳細(xì),零基礎(chǔ)也能參考此文章,感興趣的小伙伴們可以參考一下。

實(shí)現(xiàn)鼠標(biāo)左鍵拖拽效果的兩種方式:

方式一:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .move {
            width: 100px;
            height: 100px;
            background: red;
            border-radius: 50%;
            position:absolute;
            left:0;
            top:0;
        }
    </style>
</head>
<body>
    <div>
    </div>
    <script>
        //制作一個(gè)鼠標(biāo)左鍵拖拽效果
        var div = document.getElementsByClassName("move")[0];
        var style = window.getComputedStyle(div);
        var divLeft = parseFloat(style.left);
        var divTop = parseFloat(style.top);
        div.onmousedown = function(e){
            if(e.button !== 0){
                return ;//不是鼠標(biāo)左鍵,return
            }
            window.onmousemove = function(e){
                divLeft += e.movementX;//距上次鼠標(biāo)位置的X長(zhǎng)度
                divTop += e.movementY;//距上次鼠標(biāo)位置的Y長(zhǎng)度
                div.style.left = divLeft + "px";
                div.style.top = divTop + "px";
            }
            window.onmouseup = window.onmouseleave = function(){
                if(e.button === 0){//鼠標(biāo)左鍵
                    window.onmousemove = null;
                }
            }
        }
    </script>
</body>
</html>

方式二:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .move {
            width: 100px;
            height: 100px;
            background: red;
            border-radius: 50%;
            position:absolute;
            left:0;
            top:0;
        }
    </style>
</head>
<body>
    <div>
    </div>
    <script>
        //制作一個(gè)鼠標(biāo)左鍵拖拽效果
        var div = document.getElementsByClassName("move")[0];
        var style = window.getComputedStyle(div);
        div.onmousedown = function(e){
            if(e.button !== 0){
                return ;//不是鼠標(biāo)左鍵,return
            }
            var divLeft = parseFloat(style.left);
            var divTop = parseFloat(style.top);
            var divPageX = e.pageX;
            var divPageY = e.pageY;
            window.onmousemove = function(e){
                var disX = e.pageX - divPageX;
                var disY = e.pageY - divPageY;
                div.style.left = divLeft + disX + "px";
                div.style.top = divTop + disY + "px";
            }
            window.onmouseup = window.onmouseleave = function(){
                if(e.button === 0){//鼠標(biāo)左鍵
                    window.onmousemove = null;
                }
            }
        }
    </script>
</body>
</html>

關(guān)于js實(shí)現(xiàn)鼠標(biāo)拖拽效果就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果喜歡這篇文章,不如把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI