HTML5 拖放Drag和drop用法以及事件介绍

5 篇文章 0 订阅
订阅专栏
文章介绍了HTML5中的拖拽事件,包括dragstart、drag、dragend、dragenter、dragover、dragleave和drop等,以及如何通过JavaScript监听和处理这些事件。提供了一个示例,展示拖拽图片和元素的效果,包括元素拖动时的视觉反馈和元素放置的处理。
摘要由CSDN通过智能技术生成

dragstart:拖拽开始时在被拖拽元素上触发此事件
drag:拖拽过程中被拖拽的元素会持续不断地发drag事件。
dragend:鼠标在拖放目标上释放时,在拖搜元素上触发,将元素从浏览器拖放到操作系统时不会触发此事件。


dragenter:拖拽鼠标进入元素时在该元素上触发,用于给拖放元素设置视觉反馈,如高亮
dragover:拖拽时鼠标在目标元素上移动时触发
dragleave:拖拽时鼠标移出目标元素时在目标元素上触发
drop:当拖拽元素在目标元素上同时鼠标放开时触发事件息标在拖放目标上释放时在拖放目标上触发此时监听器需要收集数据并且执行所需操作。如果是从操作系统拖放文件到浏览器,需要取消浏览器默认行为。

下面是举例:

测试各个元素的拖拽使用,观察如何执行

<div><img src="./爱宠.webp" alt="" draggable="true"></div>
<span></span>
<script>
    const imgs = document.querySelector('img')
    const spans = document.querySelector('span')
    // 拖拽的元素
    imgs.addEventListener('dragstart',dragstart)
    function dragstart(){
        console.log(`dragstart 执行了~`);
    }
    imgs.addEventListener('drag',drag)
    function drag(){
        console.log('drag 执行了')
    }
    imgs.addEventListener('dragend',dragend)
    function dragend(){
        console.log('dragend 执行了')
    }
</script>

下面是一个小例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            padding: 0;
            margin: 0;
            box-sizing: border-box;
        }
        html,body{
            height: 100%;
        }
        body {
            background-color: lightblue;
            display: flex;
            justify-content: center;
            align-items: center;
        }
        .container {
            width: 200px;
            height: 200px;
            border: 8px solid;
            margin-left: 20px;
        }
        .content {
            width: 184px;/* width: 100px; */
            height: 184px;/* height: 100px; */
            background: url(./flower.jpg) center/cover;
        }
        .hide {
            display: none;
        }
        .active {
            border: 8px dashed #ccc;
            background-color: lightgoldenrodyellow;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="content" draggable="true"></div>
    </div>
    <div class="container"></div>
    <div class="container"></div>
    <div class="container"></div>
    <div class="container"></div>
    <script>
        //拖拽的元素
        const content = document.querySelector('.content')
        content.addEventListener('dragstart', dragstart)
        function dragstart(){
            setTimeout(() =>{  //setTimeout可以让元素不要消失得这么快
                this.classList.add('hide')  //当拖拽开始时隐藏该元素
            })
        }
        content.addEventListener('dragend',dragend)
        function dragend(){
            this.classList.remove('hide')  //当拖拽结束时显示该元素
        }
        //目标元素
        const container = document.querySelectorAll('.container')
        container.forEach((item)=>{  
            item.addEventListener('dragleave',dragleave)
            item.addEventListener('dragenter',dragenter)
            item.addEventListener('dragover',dragover)
            item.addEventListener('drop',drop)
        })
        function dragleave() {
            this.classList.remove('active')  //当元素移出该区域时,取消高亮
        }
        function dragenter() {
            this.classList.add('active')  //当元素移动到该区域上时高亮显示
        }
        //drop事件要和dragover事件一起使用才有效果,注意阻止事件
        function dragover(e){
            e.preventDefault();
        }
        function drop(e){  //当拖拽元素在目标元素上同时鼠标放开时,需要将拖拽元素放到这个容器中
            e.preventDefault();
            this.append(content) //将拖拽元素放到这个容器中
        }
    </script>
</body>
</html>

效果如下:

初始时:

拖拽时:

 松开时:

以上案例仅供参考 

QML拖放事件(Drag-Drop)用法及示例
yang1fei2的博客
06-04 348
在QML中拖放事件主要涉及三个组件:Draggable元素、DropArea和Drag事件Draggable元素: 任何可以设置Drag属性的QML组件。通常,这意味着任何继承自 Item 的组件都可以被拖动。 DropArea: 用来接收被拖动组件的区域。它可以定义响应拖放事件的行为,例如接受或拒绝放下的组件。 Drag: 一个附加在可拖动组件上的属性,控制着拖动过程中的各种行为,如开始拖动、拖动时的视觉效果等。
HTML5 拖放Drag&Drop+完整示例
cokeoscar的博客
04-14 144
使用到的API介绍 目标元素中: οndrοp=“drop(event)” ——目标元素完全接受被拖放元素时触发 οndragοver=“allowDrop(event)”——被拖放元素在目标元素中移动时触发 拖放元素中: οndragstart=“drag(event)”——被拖放元素在开始拖放时触发 拖动图片放入框中 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">
html5dragw3c,HTML5拖拽功能drag
weixin_42126668的博客
06-27 466
1.创建拖拽对象给需要拖拽的元素设置draggable属性,它有三个值:true:元素可以被拖拽;false:元素不能被拖拽;auto: 浏览器自己判断元素是否能被拖拽。2.处理拖拽事件当我们拖拽对象的时候会触发拖拽事件包括:A.dragstart:当元素拖拽开始触发;B.drag:在元素拖拽过程中触发;C.dragend:元素拖拽结束时触发3.创建投放区①当拖拽对象进入投放区的时候会触发相关的事...
Dragend 项目教程
最新发布
gitblog_00266的博客
09-05 278
Dragend 项目教程 dragenddragend JS – a touch ready, full responsive, content swipe script项目地址:https://gitcode.com/gh_mirrors/dr/dragend 1. 项目的目录结构及介绍 dragend/ ├── dist/ │ ├── dragend.js │ └── dragend...
HTML5 drag拖放事件
qq_42687001的博客
03-02 252
dragstart:事件主体是被拖放元素,在开始拖放拖放元素时触发 darg: 事件主体是被拖放元素,在正在拖放拖放元素时触发 dragenter:事件主体是目标元素,在被拖放元素进入某元素时触发 dragover:事件主体是目标元素,在被拖放元素在某元素内移动时触发 dragleave:事件主体是目标元素,在被拖放元素移出目标元素时触发 drop事件主体是目标元素,在目标元素完全接受被拖放...
HTML5 拖放DragDrophtml排序拖拽案例,vue仿照element穿梭框拖拽案例。
qq_54753561的博客
05-11 2952
HTML5 拖放DragDrophtml排序拖拽案例,vue仿照element穿梭框拖拽案例。
HTML5 drag拖动事件
weixin_30342827的博客
05-10 157
参考链接:https://segmentfault.com/a/1190000013606983 例子: <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> <style type="...
html drag 例子,html drag拖拽事件
weixin_31309557的博客
06-05 421
html中,事件的处理都是在js中完成的,html,js和css是密不可分的。下面就是在js中处理拖拽事件的例子。拖拽事件分两大块,一块是对拖拽的目标上的处理(即拖动目标);一块是对拖拽到的目标上的处理(即释放目标)。在拖动目标上触发事件 (源元素):ondragstart - 用户开始拖动元素时触发ondrag - 元素正在拖动时触发ondragend - 用户完成元素拖动后触发释放目标时触发...
HTML5 拖放DragDrop)详解与实例代码
01-21
HTML5 中,拖放是标准的一部分,任何元素都能够拖放。 先点击一个小例子:在用户开始拖动 <p> 元素时执行 JavaScript 拖动我! 提示: 链接和图片默认是可拖动的,不需要 draggable 属性。 定义和用法拖放的...
HTML5拖放(Dragdrop)教程
weixin_49840872的博客
08-04 964
拖放 一、概述 1、拖放(Dragdrop)是HTML5标准的组成部分。    拖放是一种常见的特性,即将一个对象抓取后放置到指定位置,在HTML5中,任何元素都可以进行拖放的操作。 2、浏览器支持情况。    Internet Explorer 9、Firefox、Opera 12、Chrome以及Safari 5支持拖放,需要注意的是,在Safari 5.1.2中不支持拖放,由此可见,在编写拖放时,需要注意浏览器的兼容问题。 3、拖拽元素支持的事件    (1)ondrag-----应用于拖拽元素,整
vue 中基于html5 drag drap的拖放效果案例分析
10-17
这些案例涉及了拖放操作的各个环节,包括元素的拖拽开始、移动中、放置结束等,并详细解释了如何使用Vue.js和HTML5拖放API来实现这些功能。这些知识点对于那些希望在Vue.js项目中添加拖放功能的开发者来说,是非常...
HTML中的DragDrop
一路斜阳的专栏
03-23 726
HTML中的DragDropHTML5中为元素添加了draggable属性用来表示元素是否可以拖动。而且该值必须设置为true,否则不生效。示例如下: function drop(event) { var elementId = event.dataTransfer.getData("dragElement"); event.target.appe...
HTML5 拖放DragDrop
爱睡的虫虫
05-21 2629
HTML5 拖放DragDrop) 简介 拖拽(Drag/Drop)是个非常普遍的功能。在生活中,拖放物品其实是相当常见的一个动作。你可以抓住一个对象,并且拖动到你想放置的区域。 在HTML5中,拖拽(draganddrop)成为了标准操作,任何元素都支持。 定义 拖放是一种常见的特性,即抓取对象以后拖到另一个位置。 在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。 定义和用法...
h5drag事件
liudanyang_21的博客
08-23 205
在拖动目标上触发事件 (源元素):ondragstart - 用户开始拖动元素时触发ondrag - 元素正在拖动时触发ondragend - 用户完成元素拖动后触发释放目标时触发的事件:ondragenter - 当被鼠标拖动的对象进入其容器范围内时触发此事件ondragover - 当某被拖动的对象在另一对象容器范围内拖动时触发此事件ondragleave - 当被鼠标拖动的对象离开其容器范围内时触发此事件ondrop - 在一个拖动过程中,释放鼠标键时触发此事件 保存在dataTransfer.
html绑定drag事件,HTML-Drag事件(拖拽)
weixin_42516830的博客
06-09 222
拖拽body {padding: 0;margin: 0;background-color: #F7F7F7;position: relative;}.box {width: 150px;height: 150px;background-color: yellow;position: absolute;top: 100px;left: 50px;}.container {width: 300px;...
Js中六种拖拽(拉)事件dragdrop
weixin_46022934的博客
10-17 8707
拖拽事件(待更新) 前言(各个浏览器的兼容性) 1.兼容性如下图: 一、相关的五个事件api如下: 拖拽流程说明: 1.dragstart事件 2.dragenter事件 3.dragover事件 4.drop事件(必须要dragover事件触发) 5.dragend事件 MDN详细说明: 链接如下 如下图所示: 二、相关的属性 1.draggable(让元素可拖拽) draggable解释说明: 使用代码如下: 如下图所示: 2.dataTransfer(对应的拖拽媒介) 解释说明(通用方法):
HTML5 拖放DragDrop)-学习笔记
CYSNLD的博客
07-21 1558
拖放(Dragdrop)是HTML5标准的组成部分。要接受元素的放下,目标元素必须监听至少3个事件首先是dragenter事件,用来决定是否接受“拖动的元素”被放下,如果接受放下,那么该事件就被取消,进入下一个事件然后开始dragover事件,用来确定给用户什么样的反馈,即位于该元素之上时呈现什么样的效果,如果该事件被取消,反馈一般是一个鼠标指针,也可以使用dropEffect属性定义,如果事件没有被取消,那么就是默认的行为,默认的行为一般就是什么也不做。。...
H5鼠标拖动事件drag
个人博客
11-15 2362
H5鼠标拖动事件一、元素拖动二、相关事件1.拖拽元素(1)dargstart(2)drag(3)dragend2.目标元素(1)drop(2)dragover(3)dragenter(3)dragleave 一、元素拖动 HTML5已经完全支持鼠标拖动元素,其中图片和链接默认就支持拖拽,而其他的元素需要设置属性draggable=“true” 就可支持拖拽。其中在拖拽的过程中会默认触发一系列事件。 二、相关事件 1.拖拽元素 被拖拽的元素自身 <div id="box" draggable="
H5中的拖放DragDrop
Kratial的博客
08-02 862
h5中的拖放行为
写文章

热门文章

  • 生命周期函数——created、onload、mounted、updated的执行顺序 5498
  • HTML5 拖放Drag和drop用法以及事件介绍 2260
  • SQL数据分析(简单版) 856
  • C#转换千分位方法 744
  • canvas初步了解以及使用 742

分类专栏

  • 扩展知识 1篇
  • 前端小案例 5篇
  • CSS加载动画效果
  • 算法 3篇
  • C#知识 1篇
  • Echarts 1篇
  • 前端组件封装 1篇

最新评论

  • SQL数据分析(简单版)

    大吉岭茶: 很详细,感谢表情包

  • SQL数据分析(简单版)

    CSDN-Ada助手: 推荐 MySQL入门 技能树:https://edu.csdn.net/skill/mysql?utm_source=AI_act_mysql

  • mPaaS介绍——针对Kylin部分介绍

    爱吃番茄的橘子猫: 请问 如果使用vant 怎么按需呢 尤其是样式 谢谢

  • canvas初步了解以及使用

    CSDN-Ada助手: 恭喜你写了第13篇博客,标题为“canvas初步了解以及使用”!看来你对canvas有了初步的了解并且已经开始使用,这是非常棒的进步!希望你能继续坚持创作,不断提升自己的技术水平。接下来,或许可以考虑深入研究canvas的高级用法,或者尝试结合其他技术进行更丰富的创作。期待看到你更多精彩的作品!加油!

  • Mand Mobile文档实践分享

    CSDN-Ada助手: 恭喜您写了第11篇博客!看到您分享Mand Mobile文档实践的经验,让人受益匪浅。希望您能继续坚持创作,不断分享您的学习和实践成果。或许下一步可以考虑写一些案例分析或者实际应用经验,这样能够更具有启发性和实用性。期待您的下一篇作品!

最新文章

  • SQL数据分析(简单版)
  • canvas初步了解以及使用
  • mPaaS介绍——针对Kylin部分介绍
2024年4篇
2023年10篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家玻璃钢花盆怎样喷油漆玻璃钢雕塑专业定制济源玻璃钢雕塑订做玻璃钢仿铜农耕人物雕塑定做阳江玻璃钢动物雕塑生产辽宁商场主题创意商业美陈郏县玻璃钢雕塑定制海口加工玻璃钢雕塑精准推荐淮南景区玻璃钢雕塑价格福州定制玻璃钢雕塑市场綦江景区玻璃钢雕塑好口碑的玻璃钢恐龙雕塑嘉兴玻璃钢装雕塑饰公司定制人物雕塑玻璃钢玻璃钢雕塑漆喷涂清镇玻璃钢雕塑制作电话安康市玻璃钢雕塑定制青海玻璃钢雕塑圆雕云南标牌标识玻璃钢人物雕塑济宁逼真玻璃钢座椅雕塑浙江玻璃钢仿铜雕塑商家陕西喷泉雕塑玻璃钢乳白色水印玻璃钢花盆庆阳广场玻璃钢雕塑定做济源校园玻璃钢景观雕塑上海景区玻璃钢雕塑设计室内玻璃钢雕塑摆件加工定做杭州玻璃钢花盆研发公司玻璃钢雕塑翻模具师傅招聘商丘玻璃钢卡通动物雕塑价格报价香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化