H5拖动事件复习

定义和用法

ondrag 事件在元素或者选取的文本被拖动时触发。

拖放是 HTML5 中非常常见的功能。 更多信息可以查看我们 HTML 教程中的 HTML5 拖放。

注意: 为了让元素可拖动,需要使用 HTML5 draggable 属性。

提示: 链接和图片默认是可拖动的,不需要 draggable 属性。

在拖放的过程中会触发以下事件:

    • 在拖动目标上触发事件 (源元素):
      • ondragstart - 用户开始拖动元素时触发
      • ondrag - 元素正在拖动时触发
      • ondragend - 用户完成元素拖动后触发

 

  • 释放目标时触发的事件:
    • ondragenter - 当被鼠标拖动的对象进入其容器范围内时触发此事件
    • ondragover - 当某被拖动的对象在另一对象容器范围内拖动时触发此事件
    • ondragleave - 当被鼠标拖动的对象离开其容器范围内时触发此事件
    • ondrop - 在一个拖动过程中,释放鼠标键时触发此事件

注意: 在拖动元素时,每隔 350 毫秒会触发 ondrag 事件。

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>拖动事件</title>
        <meta charset="utf-8">
        <style>
            .box{
                width: 200px;
                height: 100px;
                border: 1px solid #c0a;
                margin: 20px;
                float: left;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <p id="p" 
            draggable="true" 
            ondragstart="dragStart(event)" 
            ondrag="drag(event)"
            ondragend="dragEnd(event)"
            >
            要拖动的内容</p>
        </div>
        <div class="box"
            ondragenter="dragEnter(event)"
            ondragleave="dragLeave(event)"
            ondragover="dragOver(event)"
            ondrop="drop(event)"
            id="dropBox"
        ></div>
        <script>
        //event事件对象,事件绑定在谁身上就是谁
        var log = console.log;
        function dragStart(event){
            //开始拖动时触发,事件对象是拖动元素本身
            log(`dragStart`,event)
        }
        function drag(event){
            //拖动中触发 ondrag事件每350毫秒触发一次
            //log('drag',event)
        }
        function dragEnd(event){
            //拖动结束时触发
            log('dragEnd',event)
        }
        function dragEnter(event){
            //拖动的元素进入放置的目标时触发, 事件对象是目标元素
            log('dragEnter',event)
        }
        function dragLeave(event){
            //离开时触发
            log('dragLeave',event)
        }
        function dragOver(event){
            event.preventDefault();
            //log('dragOver',event)
        }
        function drop(event){
            event.preventDefault();
            log('drop',event)
            var p = document.querySelector('#p');
            var dropBox = document.querySelector('#dropBox');
            dropBox.appendChild(p)
        }
        </script>
    </body>
</html>

 

posted @ 2020-01-26 16:04  奔跑的太阳花  阅读(310)  评论(0编辑  收藏  举报