HTML5 drag & drop 拖拽与拖放
关键词:
1. draggable:规定元素是否可拖动的,draggable=true可拖动
2. dataTransfer:拖拽对象用来传递的媒介,使用方式:event.dataTransfer
3. ondragstart:拖拽元素被拖拽时触发的事件,作用于被拖拽元素
4. ondragenter:拖拽元素进入目标元素时触发的事件,作用于目标元素
5. ondragover:拖拽元素在目标元素移动触发的事件,作用于目标元素
6. ondrop:拖拽的元素在目标元素上同时鼠标放开触发的事件,作用于目标元素上
7. ondragend:拖拽完成后触发的事件,作用于被拖拽元素上
实例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>拖拽</title>
<style type="text/css">
#rectangle {width:350px;height:70px;padding:10px;border:1px solid #000;}
</style>
</head>
<body> <div id="rectangle"></div>
<p id="word" draggable="true">这是一段可移动的段落,请把该段落拖入上面的矩形进行测试</p>
<script type="text/javascript">
let rectangle = document.getElementById('rectangle'),
word = document.getElementById('word'); word.ondragstart = (e) => {
e.dataTransfer.setData("Text",e.target.id);
}; rectangle.ondragenter = (e) => {
word.style.color = '#e1453c';
};
//ev.preventDefault() 方法:阻止默认的些事件方法等执行。在ondragover中一定要执行preventDefault(),否则ondrop事件不会被触发。
另外,如果是从其他应用软件或是文件中拖东西进来,尤其是图片的时候,默认的动作是显示这个图片或是相关信息,并不是真的执行drop。
此时需要用用document的ondragover事件把它直接干掉。
rectangle.ondragover = (e) => {
e.preventDefault();
};
rectangle.ondrop = (e) => {
let data=e.dataTransfer.getData("Text");
e.target.appendChild(document.getElementById(data));
e.preventDefault();
};
word.ondragend = (e) => {
document.getElementById('word').style.color = '#3cf078';
};
</script>
</body>
</html>
HTML5 drag & drop 拖拽与拖放的更多相关文章
- HTML5 drag & drop 拖拽与拖放简介
DataTransfer 对象:退拽对象用来传递的媒介,使用一般为Event.dataTransfer. draggable 属性:就是标签元素要设置draggable=true,否则不会有效果,例如 ...
- atitit.D&D drag&drop拖拽文件到界面功能 html5 web 跟个java swing c#.net c++ 的总结
atitit.D&D drag&drop拖拽文件到界面功能 html5 web 跟个java swing c#.net c++ 的总结 1. DND的操作流程 1 2. Html5 注 ...
- Atitit。D&D drag&drop拖拽功能c#.net java swing的对比与实现总结
Atitit.D&D drag&drop拖拽功能c#.net java swing的对比与实现总结 1. 实现一个D&D操作一般包括三个步骤: 1 2. .net黑头的拖曳机制 ...
- HTML5中的拖拽与拖放(drag&&drop)
1.drag 当拖动某个元素时,将会依次触发下列事件: 1)dragstart:按下鼠标键并开始移动鼠标时,会触发该事件 2)drag:dragstart触发后,随即便触发drag事件,而且在元素被拖 ...
- html5 drag 文件拖拽浅淡
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- [转]人人网首页拖拽上传详解(HTML5 Drag&Drop、FileReader API、formdata)
人人网首页拖拽上传详解(HTML5 Drag&Drop.FileReader API.formdata) 2011年12月11日 | 彬Go 上一篇:给力的 Google HTML5 训练营( ...
- html5 Sortable.js 拖拽排序源码分析
最近公司项目经常用到一个拖拽 Sortable.js插件,所以有空的时候看了 Sortable.js 源码,总共1300多行这样,写的挺完美的. 本帖属于原创,转载请出名出处. 官网http:// ...
- HTML5多图片拖拽上传带进度条
前言 昨天利用css2的clip属性实现了网页进度条觉得还不错,但是很多情况下,我们在那些时候用进度条呢,一般网页加载的时候如果有需要可以用,那么问题就来了,怎么才算整个加载完毕呢,是页面主要模块加载 ...
- HTML5 drag & drop & H5 DnD
HTML5 drag & drop H5 DnD https://html5demos.com/ demos https://html5demos.com/dnd-upload https:/ ...
随机推荐
- web.xml里welcome-file欢迎页面配置及web.xml简介
web项目欢迎页面的配置 <welcome-file-list> <welcome-file>/WEB-INF/index.html</welcome-file> ...
- Django ORM字段类型 单表增删改查 万能的双下划线
1.ORM三种模型 模型之间的三种关系:一对一,一对多,多对多. 一对一:实质就是在主外键(author_id就是foreign key)的关系基础上,给外键加了一个UNIQUE=True的属性: 一 ...
- Ubuntu 16.04下 - vi编辑器使用【backspace】无法删除
参考:https://blog.csdn.net/leiwangzhongde/article/details/83339589
- zabbix系列之六——安装后配置二Items
https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/snmp 1Items 1.1creating items ...
- 转载:https://blog.csdn.net/qq_22706515/article/details/52595027
https://blog.csdn.net/qq_22706515/article/details/52595027 包含直播,即时通讯. 大平台都有免费版或基础版,对于需求不大的情况比较适合.
- leetCode题解之根据字符出现的频率排序
1.题目描述 Given a string, sort it in decreasing order based on the frequency of characters. Example 1: ...
- netty发送和接收数据handler处理器
netty发送和接收数据handler处理器 主要是继承 SimpleChannelInboundHandler 和 ChannelInboundHandlerAdapter 一般用netty来发送和 ...
- Jboss的jmx-console中查看内存和线程状态
步骤: 1.假设jboss运行在 192.168.1.100:8080 地址和端口上. 2. 浏览器中访问http://192.168.1.100:8080/,然后选择jmx-console 3.选择 ...
- 通过ffplay实现摄像头preview
通过ffplay实现摄像头preview 硬件平台:Jetson TK1 开发板(NVIDIA Tegra K1 Mobile Processor 32bit),宁波舜宇光电SP103A(OV1682 ...
- wxpython 窗口排版- proportion/flag/border参数说明
新学习wxpython,一直纠结于窗口控件的排版,经过几天的查资料.试验,总结如下. 1.需求实例 来个实例,窗口有3行控件 第一行是文本提示(大小不变,文字左对齐,控件居左). 第二行依次为文本提示 ...