婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

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

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

熱門標簽:如何獲取地圖標注客戶 只辦理400電話 高德地圖標注地點糾錯 南昌仁和怎么申請開通400電話 電話機器人電銷系統(tǒng)掙話費 拓展地圖標注 電話機器人黑斑馬免費 機器人外呼系統(tǒng)存在哪些能力 平涼地圖標注位置怎么弄

1. HTML5 拖拽

1.1 相關知識

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

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

  • ondragstart當拖拽開始時調用
  • ondragleave 當鼠標離開拖拽元素時調用
  • ondragend 當拖拽結束時調用
  • ondrag 整個拖拽過程都會調用

目標元素:把元素A拖拽到元素B里,那么元素B就是目標元素。頁面中任何一個元素都可以成為目標元素。

目標元素的事件監(jiān)聽:(應用于目標元素)

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

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

1.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 {
                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 拖拽
            // 應用于拖拽元素
            var box = document.querySelector('.box')
            box.ondragstart = function () {
                console.log('拖拽開始')
            }
            box.ondragleave = function () {
                console.log('鼠標離開元素')
            }
            box.ondragend = function () {
                console.log('拖拽結束')
            }
            // box.ondrag = function () {
            //     console.log('在拖拽');
            // }

            // 應用于目標元素(想把 box 拖拽進去的地方)
            var box2 = document.querySelector('.box2')
            box2.ondragenter = function () {
                console.log('進來了')
            }
            box2.ondragleave = function () {
                console.log('離開了')
            }

            // 當拖拽元素在 目標元素上時,連續(xù)觸發(fā)
            box2.ondragover = function (e) {
                // 如果想讓拖拽元素在目標元素里做點事情,就必須要在 ondragover() 里加event.preventDefault()這一行代碼。
                e.preventDefault()
                console.log('over')
            }
            box2.ondrop = function () {
                console.log('松開鼠標了')
            }
        </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 () {
                    // 保持當前拖拽的元素
                    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 實現(xiàn)拖拽

2.1 js 簡單拖拽

按下鼠標進行簡單的拖拽。

<!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;
                /* 無法選中 */
                -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')
                        // 移動后位置會變,temp 的位置應該與 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 則默認不發(fā)生實際移動
                            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>請選擇拖拽的方式</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>

效果展示

有時會卡頓,未解決…

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

標簽:青島 漯河 遼源 永州 棗莊 池州 西藏 新疆

巨人網絡通訊聲明:本文標題《html5 拖拽及用 js 實現(xiàn)拖拽功能的示例代碼》,本文關鍵詞  html5,拖拽,及,用,實現(xiàn),功能,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《html5 拖拽及用 js 實現(xiàn)拖拽功能的示例代碼》相關的同類信息!
  • 本頁收集關于html5 拖拽及用 js 實現(xiàn)拖拽功能的示例代碼的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩欧美一区在线| 老司机午夜精品| 久久这里只有精品6| 91精品国产麻豆| 午夜精品福利在线| 日韩一二在线观看| 欧美三级三级三级爽爽爽| 国产精品免费免费| 欧美va在线播放| 亚洲图片一区二区| 亚洲精选在线视频| 国产精品久久毛片a| 精品成人免费观看| 精品少妇一区二区三区免费观看| 欧美另类高清zo欧美| 色综合 综合色| 在线观看不卡视频| 岛国一区二区在线观看| 国产成人亚洲综合a∨婷婷| 黄色成人免费在线| 国产精品一区二区免费不卡| 精品一区免费av| 欧美午夜精品久久久| 一本一本久久a久久精品综合麻豆| 成人免费视频一区| 国内外精品视频| 国产一区二区三区高清播放| 亚洲女人****多毛耸耸8| 国产欧美精品日韩区二区麻豆天美| 精品嫩草影院久久| 国产精品免费网站在线观看| 国产精品你懂的在线| 国产精品国产三级国产a | 国产精品蜜臀av| 中文字幕一区免费在线观看| 狠狠色综合日日| 福利一区二区在线观看| 97国产一区二区| 91在线视频网址| 色婷婷综合久久久久中文 | 懂色av一区二区三区免费观看| 国产精品亚洲专一区二区三区| 国产成人精品免费一区二区| 色综合久久久久久久| 欧美精品久久天天躁| 久久女同精品一区二区| 懂色av一区二区三区免费观看| 色综合天天综合网国产成人综合天| 欧美日韩一区二区在线观看视频| 911国产精品| 国产欧美日韩视频在线观看| 亚洲欧美日韩在线播放| 视频一区视频二区中文字幕| 国产一本一道久久香蕉| 91免费小视频| 26uuuu精品一区二区| 亚洲精品国产第一综合99久久 | 精品国产免费一区二区三区四区| 欧美视频在线一区二区三区| 精品1区2区在线观看| 一区二区三区四区视频精品免费 | 国产色91在线| 亚洲在线一区二区三区| 国产精品一区二区在线看| 日本福利一区二区| 欧美变态tickling挠脚心| 一区二区三区在线观看动漫| 亚洲成人一二三| 北条麻妃一区二区三区| 日韩一区二区三区免费观看| 亚洲乱码国产乱码精品精可以看| 国产麻豆视频一区二区| 制服丝袜成人动漫| 亚洲免费av高清| 粉嫩av亚洲一区二区图片| 国产精品欧美一区喷水| 亚洲人成网站色在线观看| 亚洲欧美一区二区三区久本道91 | 亚洲成人免费av| 99久久er热在这里只有精品66| 欧美精品日日鲁夜夜添| 日本一区二区三区在线不卡| 美脚の诱脚舐め脚责91 | 久久久亚洲精品一区二区三区| 亚洲123区在线观看| 粉嫩久久99精品久久久久久夜| 精品免费一区二区三区| 免费日韩伦理电影| 在线电影一区二区三区| 亚洲一区二区三区四区在线| 91免费精品国自产拍在线不卡| 国产精品女同互慰在线看| 成人爽a毛片一区二区免费| 久久精品免视看| 狠狠色综合日日| 久久久亚洲国产美女国产盗摄 | 国产精品乱码人人做人人爱 | 最新成人av在线| 成人性生交大片免费看视频在线| 国产午夜精品一区二区三区视频| 国产永久精品大片wwwapp| 欧美日韩黄色影视| 亚洲男人天堂一区| 91精品福利在线| 日韩av中文字幕一区二区| 欧美一区二区日韩| 黑人精品欧美一区二区蜜桃| 国产午夜亚洲精品理论片色戒| 成人黄色在线视频| 一级做a爱片久久| 欧美丰满美乳xxx高潮www| 亚洲国产视频一区| 91麻豆精品国产91久久久久| 美女一区二区视频| 日本一区二区三区国色天香 | 色吊一区二区三区| 亚洲成人一区在线| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 免费成人小视频| 国产日产欧美一区二区三区| jizz一区二区| 午夜精品久久久久| 欧美日韩中文另类| 国产一区二区91| 亚洲综合在线免费观看| 精品国产电影一区二区| heyzo一本久久综合| 日韩国产欧美在线视频| 欧美经典一区二区| 欧美色视频一区| 蜜臀av国产精品久久久久| 欧美电影免费观看高清完整版在 | 91精品婷婷国产综合久久竹菊| 免费久久99精品国产| 亚洲色图欧美激情| 久久久另类综合| 欧美综合色免费| 国产宾馆实践打屁股91| 午夜电影网亚洲视频| 日韩理论片在线| 欧美日韩电影一区| 99久精品国产| 国产在线麻豆精品观看| 亚洲一区二区3| 久久久久久免费网| 日韩欧美激情在线| 日韩精品一区二区三区视频播放 | 美国av一区二区| 麻豆专区一区二区三区四区五区| 亚洲国产一区二区三区| 亚洲成人av一区二区三区| 亚洲图片一区二区| 日本亚洲电影天堂| 久久国产精品99久久久久久老狼| 久久国产精品区| 国产高清不卡一区二区| 国产91丝袜在线播放0| 成人丝袜18视频在线观看| 99国产精品一区| 欧美视频在线一区二区三区| 欧美一区二区三区思思人| 日韩一区二区在线播放| xnxx国产精品| 136国产福利精品导航| 一区二区三区在线不卡| 日韩精品视频网| 国产精品99久久久久久似苏梦涵| jizz一区二区| 欧美一区二区视频观看视频| 精品国精品国产| 亚洲日本乱码在线观看| 亚洲va欧美va人人爽| 久久9热精品视频| eeuss鲁片一区二区三区在线看| 色婷婷亚洲综合| 精品久久人人做人人爱| 国产精品传媒入口麻豆| 天天综合色天天| 国产成人av一区二区三区在线观看| 成人黄色一级视频| 欧美一级二级在线观看| 国产精品久久久一本精品| 天天影视涩香欲综合网| 国产91露脸合集magnet | 国产伦精品一区二区三区免费迷| 高清shemale亚洲人妖| 在线看日本不卡| 26uuu色噜噜精品一区二区| 亚洲欧美另类在线| 国产自产视频一区二区三区| 91久久免费观看| 欧美激情一区二区三区不卡| 亚洲一区二区三区爽爽爽爽爽| 国内精品伊人久久久久av一坑| 欧美午夜电影在线播放| 久久伊人蜜桃av一区二区| 天天综合色天天综合| 在线观看中文字幕不卡| 国产区在线观看成人精品| 欧美a一区二区|