摘要:關(guān)于拖拽元素,在網(wǎng)上有很多例子,但都比較簡單,且大多數(shù)沒有完全考慮瀏覽器窗口邊界。對拖拽代碼中的具體解釋事件流用于兼容各瀏覽器方法為了返回一個,外界方便操作的接口。考慮邊界情況,在函數(shù)內(nèi)部的注釋已十分詳細(xì)。
關(guān)于拖拽元素,在網(wǎng)上有很多例子,但都比較簡單,且大多數(shù)沒有完全考慮瀏覽器窗口邊界。
參考多方資料,自己寫了個較完善的封裝拖拽的方法。
先貼出代碼,復(fù)制后運行看下效果,
所有理解在注釋中較詳細(xì)說明。
Document
ps:注意138行,可以試著把(event.clientX-diffx)<0換成dragging.offsetLeft<0看看效果。
對拖拽代碼中的具體解釋:
①事件流用于兼容各瀏覽器
②EventTarget方法為了返回一個,外界方便操作的接口。
③ EventTarget函數(shù)內(nèi)部通過switch,給拖拽元素添加onmousedown、onmousemove、onmouseup事件。
④通過將元素設(shè)置為position:absolute;再通過top和left屬性實現(xiàn)拖拽。
⑤考慮邊界情況,在函數(shù)內(nèi)部的注釋已十分詳細(xì)。
⑥最后的dragstart、drag、dragend是元素在拖拽開始到結(jié)束時候觸發(fā)的事件。
⑦返回EventTarget,為了可以給元素拖拽事件添加操作,在 EventTarget中定義這些事件流。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/94388.html
摘要:原生實現(xiàn)對元素的拖拽一背景介紹此處為鋪墊內(nèi)容,可跳過隨著前端的不斷發(fā)展,各種各樣的前端規(guī)范和新知識新技術(shù)層出不窮,極大地拓展了開發(fā)者的操作空間,也大大地提升了用戶體驗。 原生 JS 實現(xiàn)對 html 元素的拖拽 一、背景介紹 【此處為鋪墊內(nèi)容,可跳過】 隨著 Web 前端的不斷發(fā)展,各種各樣的前端規(guī)范和新知識、新技術(shù)層出不窮,極大地拓展了開發(fā)者的操作空間,也大大地提升了用戶體驗。而隨著...
摘要:原生實現(xiàn)對元素的拖拽一背景介紹此處為鋪墊內(nèi)容,可跳過隨著前端的不斷發(fā)展,各種各樣的前端規(guī)范和新知識新技術(shù)層出不窮,極大地拓展了開發(fā)者的操作空間,也大大地提升了用戶體驗。 原生 JS 實現(xiàn)對 html 元素的拖拽 一、背景介紹 【此處為鋪墊內(nèi)容,可跳過】 隨著 Web 前端的不斷發(fā)展,各種各樣的前端規(guī)范和新知識、新技術(shù)層出不窮,極大地拓展了開發(fā)者的操作空間,也大大地提升了用戶體驗。而隨著...
摘要:遠(yuǎn)程讀取會有許多限制,防止引起不必要的安全隱患。比較時可以把點去掉轉(zhuǎn)為數(shù)字類型比較腳本執(zhí)行完畢下載前可以拿到更新日志時間版本號和包大小,下載時可以拿到速度。然后開啟該項目的構(gòu)建。將第一步生成的填至項目環(huán)境變量,參數(shù)名為。 父母都是做出納相關(guān)的工作,希望我能給他們做個簡單的進(jìn)銷存,在上班的時候使用。開發(fā)一個不需要花錢買服務(wù)器,不需要依賴網(wǎng)絡(luò)(更新除外),單機版的程序,對于前端出身的我來說...
摘要:定義字符中文注音或字符的解釋或發(fā)音。表單域我們都知道標(biāo)簽用于為用戶輸入創(chuàng)建表單。在中表單域添加了兩個新的屬性規(guī)定是否啟用表單的自動完成功能,默認(rèn)。通過屬性和表單域的可以將輸入表單綁定到表單域中。 showImg(http://ww1.sinaimg.cn/large/007kscFEgy1fxgnw4hajoj31400p0q4d.jpg); 1. 認(rèn)識HTML5 HTML5并不僅僅...
閱讀 2714·2023-04-25 14:59
閱讀 909·2021-11-22 11:59
閱讀 649·2021-11-17 09:33
閱讀 2478·2021-09-27 13:34
閱讀 3914·2021-09-09 11:55
閱讀 2333·2019-08-30 15:44
閱讀 1136·2019-08-30 14:06
閱讀 1935·2019-08-29 16:55