HTML5之拖放功能
来源:互联网 发布:幼儿园网络培训心得 编辑:程序博客网 时间:2024/05/01 16:40
要接受元素的放下,目标元素必须监听至少3个事件:
(1) 首先是dragenter事件,用来决定是否接受“拖动的元素”被放下,如果接受放下,那么该事件就被取消,进入下一个事件
(2)然后开始dragover事件,用来确定给用户什么样的反馈,即位于该元素之上时呈现什么样的效果,如果该事件被取消,反馈一般是一个鼠标指针,
也可以使用dropEffect属性定义,如果事件没有被取消,那么就是默认的行为,默认的行为一般就是什么也不做。
(3)最后是drop事件,也就是实际将执行的放下动作,这个事件也需要被取消,这样dropEffect属性的设置就可以被使用
<!DOCTYPE HTML><html><head><meta charset="UTF-8"><title>范例——拖放</title><style>body {font-family: 'Microsoft YaHei';}div.drag {background-color:#AACCFF;border:1px solid #666666;cursor:move;height:100px;width:100px;margin:10px;float:left;}div.drop {background-color:#EEEEEE;border:1px solid #666666;cursor: pointer;height:150px;width:150px;margin:10px;float:left;}</style></head><body><div draggable="true" class="drag" ondragstart="dragStartHandler(event)">Drag me!</div><div class="drop" ondragenter="dragEnterHandler(event)" ondragover="dragOverHandler(event)" ondrop="dropHandler(event)">Drop here!<ol /></div><script>var internalDNDType = 'text'; // 设定一个自订的关键词,定义DND数据类型function dragStartHandler(event) { // 将数据复制到DataTransfer对象,指定DND数据类型 event.dataTransfer.setData(internalDNDType, event.target.textContent); event.effectAllowed = 'move'; // 设定允许的操作,这里是仅允许移动}// dragEnter事件function dragEnterHandler(event) { // 检查该拖放是否包含指定的DND数据类型,从而决定是否取消事件 if (event.dataTransfer.types.contains(internalDNDType)) if (event.preventDefault) event.preventDefault(); // 取消事件}// dragOver事件function dragOverHandler(event) { event.dataTransfer.dropEffect = 'copy'; // 设定回馈 if (event.preventDefault) event.preventDefault(); // 取消事件}// drop事件function dropHandler(event) { // 获取拖曳时放置的DND数据var data = event.dataTransfer.getData(internalDNDType); // 下面建立一个li元素,将数据放进去 var li = document.createElement('li'); li.textContent = data; event.target.lastChild.appendChild(li);}</script></body></html>
- HTML5之拖放功能
- HTML5之拖放功能(多文件上传和元素拖放)
- HTML5拖放功能
- Html5的拖放功能
- html5之拖放
- html5之拖放
- HTML5之拖放
- HTML5之拖放
- HTML5之拖放
- HTML5之拖放
- HTML5中drag拖放功能
- Html5之图片拖放上传
- html5之拖放简单效果
- HTML5学习笔记之拖放
- [HTML5&CSS3]拖放功能的实现
- HTML5实现简单的拖放功能
- 小强的HTML5移动开发之路(16)——神奇的拖放功能
- HTML5移动开发之路(13)——神奇的拖放功能
- cmd 快捷键
- RHEL6下puppet部署管理1之安装测试
- php的serialize序列化和json性能测试
- [控件]AlertDialog对话框
- Hibernate源码分析
- HTML5之拖放功能
- iPhone开发之UITableView简单应用(5)
- IE6显示png透明背景、图片的方法
- iOS开发:自定义UITableViewCell
- FreeMarker的四种基本数据类型及其序列和哈希表
- Relaunching Your Application
- 其实,烦恼
- 通过NSURL实现网站链接打开效果的UIButton
- 项目分包结构