HTML5拖拽事件笔记
在HTML5的规范中,我们可以通过为元素增加`draggable="true"`来设置此元素是否可以进行拖拽操作,其中图片、链接默认是开启的。
1. 拖拽元素:设置了`draggable="true"`的元素
当拖动某元素时,将依次触发下列事件:
1. dragstart(按下鼠标并开始移动鼠标时,会在被拖放的元素上触发dragstart事件)
2. drag(触发dragstart事件后,随即会触发drag时间,而且在元素被拖动器件会持续触发该事件)
3. dragend(当拖动停止时,无论是否把元素放到了有效的放置目标上,会触发dragend事件)
2. 目标元素:页面中的任何一个元素都可以成为目标元素
当某个元素倍拖动到一个有效的目标上时,下列事件会依次发生:
1. dragenter(只要有元素倍拖放到目标上,就会触发dragenter事件)
2. dragover(dragenter被触发后紧接着触发dragover事件,在被拖动目标一直在目标范围内时,dragover事件会持续被触发)
3. dragleave或drop(如果元素被拖出了放置目标,dragover事件不再触发,但会触发dragleave事件;如果元素被放到了目标元素中,则触发drop事件而不是dragleave事件)
3. 自定义目标元素
虽然所有的元素都支持放置目标事件,但是这些元素默认是不允许放置的。如果拖动元素经过不允许放置的元素,无论永辉如何操作,都不会触发drop事件。
如果需要设置允许放置,我们必须阻止对元素的默认处理方式:
这要通过调用 dragover 事件的 event.preventDefault() 方法来阻止默认事件发生,即改变目标元素不允许放置属性,这时,当元素在目标元素上被鼠标释放时,就会触发drop事件。
HTML5拖拽事件笔记的更多相关文章
- html5拖拽事件 xhr2 实现文件上传 含进度条
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- HTML5 拖拽事件
dragstart:拖拽开始 drag: 拖拽中,会不停的触发 dragend:拖拽结束 ondraglevea:有元素离开了本元素 ondragenter:有元素进入了本元素 ondragover: ...
- HTML5 02. 多媒体控件、拖拽事件、历史记录、web存储、应用程序缓存、地理定位、网络状态
多媒体 video:是行内块(text-align: center; 对行内块适用) <figure></figure>: 多媒体标签 : <figcaption> ...
- HTML5深入学习之鼠标跟随,拖拽事件
知识点(鼠标跟随): mousedown: 当用户用鼠标点击在某一元素上就会触发该事件 mouseover: 当鼠标指针在某一元素上移动就会触发改事件 下面这个例子的效果就是鼠标点击元素后,元素跟着 ...
- Html5拖拽复制
拖拽是一种常见的特性,即抓取对象以后拖到另一个位置. 在 HTML5 中,拖拽是标准的一部分,任何元素都能够拖拽. Html5拖拽非常常见的一个功能,但是大部分拖拽的案例都是一个剪切的过程, 项目中需 ...
- html5拖拽
html5拖拽一 <!DOCTYPE html> <html> <head lang="en"> <meta charset=" ...
- 每天一个JavaScript实例-html5拖拽
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- HTML5 拖拽实现
简介: 最早在网页中引入JavaScript拖放功能是IE4.当时,网页中只有两种对象可以拖放:图像和某些文本.拖放图像时,把鼠标放到图像上,按住鼠标不放就可以拖放它.拖放文本时,要先选中文本,然后可 ...
- Html5 拖拽行为和AngularJs的结合
一. Html5的拖拽行为 1.设置元素为可拖放:把draggable属性设置为true. example: <div id="drag1" draggable=" ...
随机推荐
- ConcurrentModificationException原因及排除
如何产生,一边遍历一边修改元素,产生iter后再修改原结构,如下,无论是for中或iter都会产生ConcurrentModificationException import java.util.Ar ...
- [Shell]Shell脚本的执行方式
---------------------------------------------------------------------------------------------------- ...
- 推荐一款好用并且免费的markdown软件 Typora
Typora 的linux 安装步骤 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE su ...
- (转)C#如何加载程序运行目录外的程序集
https://www.cnblogs.com/guanglin/p/3200989.html 我们的应用程序部署的时候,目录结构一般不会只有运行程序的目录这一个,我们可能在运行目录下建子目录,也可能 ...
- unity 数学公式
Mathf.Abs绝对值 计算并返回指定参数 f 绝对值. Mathf.Acos反余弦 static function Acos (f : float) : float 以弧度为单位计算并返回参数 f ...
- 简单自定义UIToolBar
let item1 = UIBarButtonItem(title: "分享", style: .Plain, target: self, action: nil) let ite ...
- MD5 算法
MD5 Message Digest Algorithm MD5(中文名为消息摘要算法第 五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.该算法的文件号为RFC 1321(R. ...
- 微信小程序--页面传参
场景: A页面字段---传递到-->B页面 A页面wxml: wx:for----习惯用<block> 设置所点击的值----data-xxx 获取所点击的值---e.current ...
- opencv矩阵操作
1.初始化矩阵: 方式一.逐点赋值式: CvMat* mat = cvCreateMat( 2, 2, CV_64FC1 ); cvZero( mat ); cvmSet( mat, 0, 0, 1 ...
- java课后作业总结
今天的课后作业是做一个查找一段文章中单词出现的概率,统计并 输出出现概率最高的几个单词.拿到题目,老师还是往常一样提醒着我们先分析题目,构建大概的编程思路.程序需要遇到文本文件的输入输出操作,这一直一 ...