成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > html5 拖拽及用 js 實(shí)現(xiàn)拖拽功能的示例代碼

html5 拖拽及用 js 實(shí)現(xiàn)拖拽功能的示例代碼

熱門標(biāo)簽:如何獲取地圖標(biāo)注客戶 只辦理400電話 高德地圖標(biāo)注地點(diǎn)糾錯(cuò) 南昌仁和怎么申請(qǐng)開通400電話 電話機(jī)器人電銷系統(tǒng)掙話費(fèi) 拓展地圖標(biāo)注 電話機(jī)器人黑斑馬免費(fèi) 機(jī)器人外呼系統(tǒng)存在哪些能力 平?jīng)龅貓D標(biāo)注位置怎么弄

1. HTML5 拖拽

1.1 相關(guān)知識(shí)

拖拽元素:可以為元素添加 draggable="true"來(lái)讓元素能夠被拖拽。

拖拽元素的事件監(jiān)聽:(應(yīng)用于拖拽元素)

  • ondragstart當(dāng)拖拽開始時(shí)調(diào)用
  • ondragleave 當(dāng)鼠標(biāo)離開拖拽元素時(shí)調(diào)用
  • ondragend 當(dāng)拖拽結(jié)束時(shí)調(diào)用
  • ondrag 整個(gè)拖拽過程都會(huì)調(diào)用

目標(biāo)元素:把元素A拖拽到元素B里,那么元素B就是目標(biāo)元素。頁(yè)面中任何一個(gè)元素都可以成為目標(biāo)元素。

目標(biāo)元素的事件監(jiān)聽:(應(yīng)用于目標(biāo)元素)

  • ondragenter 當(dāng)拖拽元素進(jìn)入時(shí)調(diào)用
  • ondragover 當(dāng)拖拽元素停留在目標(biāo)元素上時(shí),就會(huì)連續(xù)一直觸發(fā)(不管拖拽元素此時(shí)是移動(dòng)還是不動(dòng)的狀態(tài))
  • ondrop 當(dāng)在目標(biāo)元素上松開鼠標(biāo)時(shí)調(diào)用
  • ondragleave 當(dāng)鼠標(biāo)離開目標(biāo)元素時(shí)調(diào)用

如果想讓拖拽元素在目標(biāo)元素里做點(diǎn)事情,就必須要在 ondragover() 里加event.preventDefault()這一行代碼。

1.2 拖拽基礎(chǔ)

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
        <style>
            .box {
                width: 200px;
                height: 200px;
                background: green;
            }
            .box2 {
                position: relative;
                left: 300px;
                top: 50px;
                width: 300px;
                height: 300px;
                background: red;
            }
        </style>
    </head>
    <body>
        <div class="box" draggable="true"></div>
        <div class="box2"></div>
        <script>
            // HTML5 拖拽
            // 應(yīng)用于拖拽元素
            var box = document.querySelector('.box')
            box.ondragstart = function () {
                console.log('拖拽開始')
            }
            box.ondragleave = function () {
                console.log('鼠標(biāo)離開元素')
            }
            box.ondragend = function () {
                console.log('拖拽結(jié)束')
            }
            // box.ondrag = function () {
            //     console.log('在拖拽');
            // }

            // 應(yīng)用于目標(biāo)元素(想把 box 拖拽進(jìn)去的地方)
            var box2 = document.querySelector('.box2')
            box2.ondragenter = function () {
                console.log('進(jìn)來(lái)了')
            }
            box2.ondragleave = function () {
                console.log('離開了')
            }

            // 當(dāng)拖拽元素在 目標(biāo)元素上時(shí),連續(xù)觸發(fā)
            box2.ondragover = function (e) {
                // 如果想讓拖拽元素在目標(biāo)元素里做點(diǎn)事情,就必須要在 ondragover() 里加event.preventDefault()這一行代碼。
                e.preventDefault()
                console.log('over')
            }
            box2.ondrop = function () {
                console.log('松開鼠標(biāo)了')
            }
        </script>
    </body>
</html>

1.3 將 A 在 B、C 之間拖拽

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
        <style>
            .box-b {
                width: 250px;
                height: 250px;
                background: green;
            }
            .cell-a {
                float: left;
                width: 50px;
                height: 50px;
                margin: 5px;
                text-align: center;
                line-height: 50px;
                border-radius: 50%;
                background: red;
            }
            .box-c {
                width: 200px;
                height: 200px;
                margin-top: 10px;
                background: skyblue;
            }
        </style>
    </head>
    <body>
        <p>boxB</p>
        <div class="box-b">
            <div class="cell-a" draggable="true">1</div>
            <div class="cell-a" draggable="true">2</div>
            <div class="cell-a" draggable="true">3</div>
            <div class="cell-a" draggable="true">4</div>
            <div class="cell-a" draggable="true">5</div>
        </div>
        <p>boxC</p>
        <div class="box-c"></div>
        <script>
            var cellA = document.querySelectorAll('.cell-a')
            var boxB = document.querySelector('.box-b')
            var boxC = document.querySelector('.box-c')
            var temp = null

            cellA.forEach((cell, index) => {
                // 從 boxB 拖拽到 boxC
                cell.ondragstart = function () {
                    // 保持當(dāng)前拖拽的元素
                    temp = this
                }
                cell.ondragend = function () {
                    temp = null
                }
                boxC.ondragover = function (e) {
                    e.preventDefault()
                }
                boxC.ondragenter = function () {
                    this.appendChild(temp)
                }

                // 從 boxC 拖拽到 boxB
                boxB.ondragover = function (e) {
                    e.preventDefault()
                }
                boxB.ondragenter = function () {
                    this.appendChild(temp)
                }
            })
        </script>
    </body>
</html>

效果展示

2. 用 js 實(shí)現(xiàn)拖拽

2.1 js 簡(jiǎn)單拖拽

按下鼠標(biāo)進(jìn)行簡(jiǎn)單的拖拽。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
        <style>
            #box {
                position: absolute;
                width: 200px;
                height: 200px;
                background: green;
            }
        </style>
        <script>
            window.onload = function () {
                var box = document.getElementById('box')
                var disX = 0
                var disY = 0

                box.onmousedown = function (e) {
                    var e = e || window.event
                    disX = e.clientX - this.offsetLeft
                    disY = e.clientY - this.offsetTop
                    box.onmousemove = function (e) {
                        var e = e || window.event
                        box.style.left = e.clientX - disX + 'px'
                        box.style.top = e.clientY - disY + 'px'
                    }
                    box.onmouseup = function (e) {
                        console.log('end')
                        this.onmousemove = null
                    }
                    return false
                }
            }
        </script>
    </head>
    <body>
        <div id="box"></div>
    </body>
</html>

效果展示

2.2 帶效果的拖拽

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
        <style>
            .box {
                position: absolute;
                width: 200px;
                height: 200px;
                background: skyblue;
            }
            .box1 {
                position: absolute;
                border: 1px dashed black;
                opacity: 0.5;
            }
            .way-box {
                position: absolute;
                bottom: 30px;
                right: 30px;
                /* 無(wú)法選中 */
                -moz-user-select: none; /* 火狐 */
                -webkit-user-select: none; /* 谷歌 */
                -ms-user-select: none; /* IE */
                user-select: none;
            }
        </style>
        <script>
            window.onload = function () {
                ;(function () {
                    var box = document.querySelector('.box')
                    var disX, disY, temp
                    var body = document.querySelector('body')
                    var way1 = document.querySelector('#way1')
                    var way2 = document.querySelector('#way2')

                    box.onmousedown = function (e) {
                        var e = e || window.event // 兼容性寫法
                        disX = e.clientX - this.offsetLeft
                        disY = e.clientY - this.offsetTop

                        temp = document.createElement('div')
                        body.appendChild(temp)
                        temp.classList.add('box')
                        temp.classList.add('box1')
                        // 移動(dòng)后位置會(huì)變,temp 的位置應(yīng)該與 box 位置重合
                        temp.style.left = e.clientX - disX + 'px' // 記得加單位!
                        temp.style.top = e.clientY - disY + 'px'

                        temp.onmousemove = function (e) {
                            var e = e || window.event
                            temp.style.left = e.clientX - disX + 'px' // 記得加單位!
                            temp.style.top = e.clientY - disY + 'px'
                        }
                        temp.onmouseup = function (e) {
                            console.log('end')
                            this.onmousemove = null
                            // 1 則默認(rèn)不發(fā)生實(shí)際移動(dòng)
                            if (way2.checked) {
                                box.style.left = e.clientX - disX + 'px'
                                box.style.top = e.clientY - disY + 'px'
                            }
                            temp.style.display = 'none'
                            this.onmouseup = null
                        }
                    }
                })()
            }
        </script>
    </head>
    <body>
        <div class="box"></div>
        <div class="way-box">
            <p>請(qǐng)選擇拖拽的方式</p>
            <input type="radio" id="way1" name="way" checked />
            <label for="way1">1</label>
            <input type="radio" id="way2" name="way" />
            <label for="way2">2</label>
        </div>
    </body>
</html>

效果展示

有時(shí)會(huì)卡頓,未解決…

到此這篇關(guān)于html5 拖拽及用 js 實(shí)現(xiàn)拖拽的文章就介紹到這了,更多相關(guān)html5 拖拽內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

標(biāo)簽:青島 漯河 遼源 永州 棗莊 池州 西藏 新疆

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《html5 拖拽及用 js 實(shí)現(xiàn)拖拽功能的示例代碼》,本文關(guān)鍵詞  html5,拖拽,及,用,實(shí)現(xiàn),功能,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《html5 拖拽及用 js 實(shí)現(xiàn)拖拽功能的示例代碼》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于html5 拖拽及用 js 實(shí)現(xiàn)拖拽功能的示例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    日本h视频在线观看| 日韩精品福利片午夜免费观看| 国产精品无码一区二区三区| 日韩精品在线观| 欧美女优在线观看| 国产欧美一区二区三区在线看| 日本一欧美一欧美一亚洲视频| 国产在亚洲线视频观看| 亚洲丝袜av一区| 国产极品在线视频| 国产精品综合激情| 天堂中文在线www| 少妇高潮惨叫久久久久| 欧美**室bdsm视频| 国产一区二区三区在线观看免费视频| 日韩午夜激情| 无码人妻一区二区三区在线视频| 鲁鲁视频www一区二区| 欧美日韩第一页| 国产精自产拍久久久久久蜜| 国产亚洲精品一区二区在线观看| 国产成人综合在线视频| 91午夜国产| 毛片毛片毛片毛| 青青草原成人在线视频| 超碰手机在线观看| japanese23hdxxxx日韩| 日本成人激情视频| 国产精品欧美一级免费| 99re视频在线观看| 日韩一区二区免费视频| 久久精品亚洲精品国产欧美kt∨| 久久精品国产第一区二区三区最新章节| 久久国产天堂福利天堂| 大陆极品少妇内射aaaaaa| 少妇精品无码一区二区免费视频| 亚洲妇熟xxxx妇色黄| 综合精品久久| 日韩福利视频在线| 国产丝袜控视频在线观看| 欧美另类综合| 九九热免费在线| 欧美黑人xxxxx| caoliu在线| 丰满熟女人妻一区二区三区| 六月丁香婷婷色狠狠久久| 久久精品99久久香蕉国产色戒| 精品人妻少妇AV无码专区| 久久蜜桃av| 精品人妻一区二区三区日产| 亚洲午夜精品| 91九色单男在线观看| av在线官网| 日韩美女视频中文字幕| 日本黄xxxxxxxxx100| 91福利在线导航| 亚洲欧洲激情在线| 色偷偷av亚洲男人的天堂| 电影亚洲精品噜噜在线观看| 精品国产乱码一区二区三区| 欧美尤物一区| 中文字幕在线永久| 国产亚洲aⅴaaaaaa毛片| 99精品国产高清一区二区麻豆| 中文字幕一级片| 亚洲精品一区二区三区樱花| japanese23hdxxxx日韩| 黄色一级片在线| 综合av在线| 国产精品熟妇一区二区三区四区| 99国产超薄肉色丝袜交足的后果| 免费成人在线影院| 亚洲av综合色区| 泷泽萝拉在线播放| 97人人爽人人澡人人精品| 日韩一区二区三区高清在线观看| 毛片av一区二区| 国产精品久久久| 中文字幕日韩精品有码视频| 亚洲网友自拍| 日韩欧美一区二区三区| 26uuu色噜噜精品一区| 91国产丝袜在线放| 不卡视频观看| 中文字幕免费观看| 成人免费影院| 欧美一区二区三区在线视频| 天堂av免费在线| 欧美尤物美女在线| av一区二区在线观看| 91精品一久久香蕉国产线看观看| 内射中出日韩无国产剧情| 成人信息集中地欧美| 国产69精品久久久久毛片| 色综合天天视频在线观看| 亚州男人的天堂| 国产成人精品免费视频| 2欧美一区二区三区在线观看视频| 国产高清不卡无码视频| 天天爽夜夜爽夜夜爽精品视频| 深爱五月激情五月| 五月天激情综合| 欧美黄色一级| 日韩欧美123| 日韩一区二区三区高清免费看看| 国产福利91精品| 日韩免费大片| 亚洲人成网站在线| 李宗瑞系列合集久久| 日韩欧美一区中文| 亚洲午夜小视频| www三级免费| 国产在线一卡二卡| 一级 黄 色 片一| 国产清纯白嫩初高中在线观看性色| 亚洲成人免费| 九色porny91| xxxxxxxxx欧美| 欧美一级片免费| 亚洲欧美一区二区三区极速播放| 亚洲国产精品欧美一二99| 日本韩国福利视频| 日本在线播放视频| 91久久精品www人人做人人爽| 成人激情小说网站| 在线播放/欧美激情| 超碰97久久国产精品牛牛| 国产刺激高潮av| 日韩av电影免费观看高清完整版| 国产精品亲子乱子伦xxxx裸| 林ゆな中文字幕一区二区| 一区二区三区四区免费| 网友自拍亚洲| 91av国产精品| 九九热精品视频在线| 俄罗斯xxxx性全过程| 亚洲日本一区二区三区在线| 亚洲天堂2024| 欧美午夜18电影| 亚洲精品网址在线观看| 国产综合视频在线观看| 成人18视频在线观看| 亚洲精品第一国产综合野草社区| 老司机精品视频导航| 国产视频第一页| 涩爱av色老久久精品偷偷鲁| 狠狠色狠狠色综合日日小说| 成人免费xxxxx在线观看| 日日噜噜噜噜久久久精品毛片| 中文字幕免费观看| 免费一区二区| 欧美不卡在线播放| 国产美女免费视频| 好久没做在线观看| 嫩草影院国产精品| 欧美理伦片在线播放| 99热这里只有精品1| 亚洲区精品久久一区二区三区| 少妇激情综合网| 亚洲黄一区二区三区| 成人av手机在线| 日韩综合视频在线观看| 黄色毛片网站| 亚洲a级黄色片| 青青草视频成人| 欧美视频亚洲色图| 欧美亚洲一区二区在线观看| 黄视频在线播放| 国产精品网红福利| 日韩最新在线| 欧美亚洲一区二区三区四区| 亚洲高清不卡一区| 99超碰麻豆| www.一区二区| 亚洲高清999| 国产一区二区在线免费| 国产天堂视频| 国产精品久久国产| 在线看日韩精品电影| 日韩欧美黄色大片| 久久久精品五月天| 波多野结衣在线观看视频| 久久精品黄色| 精品乱码一区内射人妻无码| 欧美国产日韩视频| 国产一区二区三区四区五区加勒比| 精品美女在线视频| 国产精品成人aaaa在线| 亚洲色偷偷色噜噜狠狠99网| 中文字幕人妻一区二区在线视频| 在线播放一区| 精品黑人一区二区三区观看时间| 亚洲男人都懂第一日本| 国内视频在线精品| 日本三级日本三级日本三级极| 夜夜嗨av一区二区三区免费区| 欧美 亚欧 日韩视频在线| 老熟妇高潮一区二区高清视频| 欧美中文字幕一区二区三区| 五十路中文字幕| 成人日韩精品| 亚洲欧美在线aaa| 色综合久久久久综合体桃花网| 日本不卡不码高清免费观看| 国产精品片aa在线观看| 久久精品男女| 清纯唯美激情亚洲| 国模私拍一区二区国模曼安| 日本在线免费观看视频| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲第一黄色网| 成人免费高清完整版在线观看| 深夜福利亚洲导航| 青娱乐国产盛宴| 福利一区二区| 欧美日韩国产首页在线观看| 99免费视频| 精品久久久久久亚洲国产300| 日韩中文字幕视频在线观看| 欧美成人性战久久| 亚洲综合一区二区| 久久99青青精品免费观看| 91女厕偷拍女厕偷拍高清| 国产亚洲一区二区三区| 成人激情免费视频| 精品这里只有精品| 97精品国产97久久久久久免费| av官网在线| 国产露脸91国语对白| 国产精品日韩在线观看| 在线观看岛国av| 亚洲AV成人无码精电影在线| 国产一区二区三区四区五区美女| 麻豆av免费看| 香蕉久久免费影视| 精品国产免费第一区二区| 欧美日韩一视频区二区| 超碰97在线资源站| 先锋资源一区| 电影91久久久| 国产在线观看精品一区二区三区| 日本一区视频在线观看| 亚洲色图网址| 777欧美精品| 艳妇乳肉豪妇荡乳av| 1769国产精品| 欧美a在线播放| 亚洲欧美日本一区| 久久这里只有精品视频网| 日本不卡二区高清三区| 欧美日韩一区二| 欧美午夜视频| 国产老女人精品毛片久久| 欧美91精品久久久久国产性生爱| 欧美www视频在线观看| 伊人网免费视频| 日韩黄色三级在线观看| 国产成人亚洲综合小说区| 7m精品国产导航在线| www.xxxx欧美| 欧美日韩在线精品一区二区三区激情综合| 欧美日韩一级大片| 男人av在线播放| 国产精品一区二区人人爽| 3344国产永久在线观看视频| 日韩不卡免费视频| 久久精品人妻一区二区三区| 高清视频国产| 中文字幕一区二区三区四区五区六区| av免费在线网站| 成人动漫视频在线观看| 91在线精品秘密一区二区| 一区二区三区在线资源| 日韩视频免费观看高清完整版在线观看| 特级全黄一级毛片| 精品国产麻豆免费人成网站| 欧美精品v日韩精品v韩国精品v| 国产精品久久占久久| 日本另类视频| 蜜臀一区二区三区| 久久偷看各类wc女厕嘘嘘偷窃| 四虎在线免费观看| 欧美裸体bbwbbwbbw| 亚洲人成网站999久久久综合| 日韩黄色免费电影| 日本免费一区二区三区视频| 78m国产成人精品视频| 久久精品72免费观看| 欧美黑人猛交的在线视频| 成人三级视频在线播放| 亚洲精品视频网址| 深夜在线视频| 国产剧情av片巨作醉酒女邻居| 欧美最新精品| 日韩午夜av电影| 国产精品13p| 国产视频在线一区二区| 黄色在线观看视频网站| 亚洲高清久久久久久| 天堂中文资源在线| 91丨国产丨九色丨pron| 九九热在线免费观看| 国产精品一区二区av影院萌芽| 91超碰在线电影| 一区二区三区精密机械公司| 在线成人黄色| 一本色道久久加勒比88综合| 日韩一级欧洲| 日本精品久久久久| 柠檬福利视频导航| 日韩中文字幕免费在线| 亚洲国产一区二区精品视频| 国产精品一区二区av白丝下载| 激情成人午夜视频| 亚洲精品男人天堂| 福利二区91精品bt7086| 免费看日本黄色| 在线成人动漫av| av免费观看在线| 久久国产精品露脸对白| 亚洲国产成人一区二区三区| 国产亚洲一区二区三区| 小舞被吸乳羞羞网站视频| 91精品婷婷国产综合久久| 九九九九九伊人| 日本毛片在线免费观看| 婷婷综合激情网| 高清不卡一区二区|