欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js實現(xiàn)簡單的拖拽效果

 更新時間:2021年09月23日 09:30:12   作者:奔跑的肉夾饃_  
這篇文章主要為大家詳細介紹了js實現(xiàn)簡單的拖拽效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了js實現(xiàn)簡單的拖拽效果的具體代碼,供大家參考,具體內(nèi)容如下

1.拖拽的基本效果

思路:

鼠標在盒子上按下時,準備移動 (事件加給物體)

鼠標移動時,盒子跟隨鼠標移動 (事件添加給頁面)

鼠標抬起時,盒子停止移動 (事件加給頁面)

var o = document.querySelector('div');
 
        //鼠標按下
        o.onmousedown = function (e) {
            //鼠標相對于盒子的位置
            var offsetX = e.clientX - o.offsetLeft;
            var offsetY = e.clientY - o.offsetTop;
            //鼠標移動
            document.onmousemove = function (e) {
                o.style.left = e.clientX - offsetX + "px";
                o.style.top = e.clientY - offsetY + "px";
            }
            //鼠標抬起
            document.onmouseup = function () {
                document.onmousemove = null;
                document.onmouseup = null;
            }
        }

2.拖拽的問題

若盒子中出現(xiàn)了文字,或盒子自身為圖片,由于瀏覽器的默認行為(文字和圖片本身就可以拖拽),我們可以設(shè)置return false來阻止它的默認行為,但這種攔截默認行為在IE低版本中,不適用,可以使用全局捕獲來解決IE的問題。

全局捕獲

全局捕獲僅適用于IE低版本瀏覽器。

<button>btn1</button>
    <button>btn2</button>
    <script>
        var bts = document.querySelectorAll('button')
 
        bts[0].onclick = function () {
            console.log(1);
        }
        bts[1].onclick = function () {
            console.log(2);
        }
 
        // bts[0].setCapture()  //添加全局捕獲
        // bts[0].releaseCapture() ;//釋放全局捕獲
</script>

一旦為指定節(jié)點添加全局捕獲,則頁面中其它元素就不會觸發(fā)同類型事件。

3.完整版的拖拽

var o = document.querySelector('div');
 
        //鼠標按下
        o.onmousedown = function (e) {
            if (o.setCapture) {   //IE低版本
                o.setCapture()
            }
            e = e || window.event
            //鼠標相對于盒子的位置
            var offsetX = e.clientX - o.offsetLeft;
            var offsetY = e.clientY - o.offsetTop;
            //鼠標移動
            document.onmousemove = function (e) {
                e = e || window.event
                o.style.left = e.clientX - offsetX + "px";
                o.style.top = e.clientY - offsetY + "px";
            }
            //鼠標抬起
            document.onmouseup = function () {
                document.onmousemove = null;
                document.onmouseup = null;
                if (o.releaseCapture) {
                    o.releaseCapture();//釋放全局捕獲   
                }
            }
            return false;//標準瀏覽器的默認行為
        }

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • js實現(xiàn)定時進度條完成后切換圖片

    js實現(xiàn)定時進度條完成后切換圖片

    這篇文章主要介紹了js實現(xiàn)定時進度條,進度100%以后可以切換圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Javascript類型轉(zhuǎn)換的規(guī)則實例解析

    Javascript類型轉(zhuǎn)換的規(guī)則實例解析

    這篇文章主要介紹了Javascript類型轉(zhuǎn)換的規(guī)則實例解析,涉及到j(luò)avascript類型轉(zhuǎn)換相關(guān)知識,對本文感興趣的朋友一起學習吧
    2016-02-02
  • js采用concat和sort將N個數(shù)組拼接起來的方法

    js采用concat和sort將N個數(shù)組拼接起來的方法

    這篇文章主要介紹了js采用concat和sort將N個數(shù)組拼接起來的方法,涉及JavaScript針對數(shù)組的合并與排序操作相關(guān)技巧,需要的朋友可以參考下
    2016-01-01
  • JS原形與原型鏈深入詳解

    JS原形與原型鏈深入詳解

    這篇文章主要介紹了JS原形與原型鏈,結(jié)合實例形式深入分析了JS原型鏈、繼承、組合繼承等相關(guān)原理、操作技巧及注意事項,需要的朋友可以參考下
    2020-05-05
  • bootstrap學習使用(導(dǎo)航條、下拉菜單、輪播、柵格布局等)

    bootstrap學習使用(導(dǎo)航條、下拉菜單、輪播、柵格布局等)

    這篇文章主要為大家詳細介紹了bootstrap框架、導(dǎo)航條、下拉菜單、輪播廣告carousel、柵格系統(tǒng)布局、標簽頁tabs等相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • echarts如何實現(xiàn)動態(tài)曲線圖(多條曲線)

    echarts如何實現(xiàn)動態(tài)曲線圖(多條曲線)

    這篇文章主要介紹了echarts如何實現(xiàn)動態(tài)曲線圖(多條曲線),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • JavaScript強制類型轉(zhuǎn)換和隱式類型轉(zhuǎn)換操作示例

    JavaScript強制類型轉(zhuǎn)換和隱式類型轉(zhuǎn)換操作示例

    這篇文章主要介紹了JavaScript強制類型轉(zhuǎn)換和隱式類型轉(zhuǎn)換操作,結(jié)合實例形式分析了javascript字符串、數(shù)字等顯示類型轉(zhuǎn)換,以及運算、判斷等情況下的隱式類型轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • ionic組件ion-tabs選項卡切換效果實例

    ionic組件ion-tabs選項卡切換效果實例

    這篇文章主要為大家詳細介紹了ionic組件ion-tabs選項卡切換效果實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • js為新添加元素添加綁定事件的實例代碼

    js為新添加元素添加綁定事件的實例代碼

    我們在開發(fā)中常遇到一種情況,在創(chuàng)建一個元素之后,需要給它綁定事件,這篇文章主要給大家介紹了關(guān)于js為新添加元素添加綁定事件的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • javascript ES6 Template String模板字符串使用方法

    javascript ES6 Template String模板字符串使用方法

    這篇文章主要介紹了javascript ES6 模板字符串(Template String)是增強版的字符串,用反引號(`)標識,它可以當作普通字符串使用,也可以用來定義多行字符串,或者在字符串中嵌入變量,需要的朋友可以參考下
    2023-06-06

最新評論