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 @   奔跑的太阳花  阅读(317)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2019-01-26 vue.js - 奇怪的 event 对象
2019-01-26 实时监听input输入框value的变化:
点击右上角即可分享
微信分享提示