简介:

最早在网页中引入JavaScript拖放功能是IE4。当时,网页中只有两种对象可以拖放:图像和某些文本。拖放图像时,把鼠标放到图像上,按住鼠标不放就可以拖放它。拖放文本时,要先选中文本,然后可以像拖放图像一样拖放被选中的文本。在IE4中,唯一有效的放置目标是文本框。到了IE5,拖放功能得到拓展,添加了新的事件,而且几乎网页中的任何元素都可以作为放置目标。IE5.5更进一步让网页中的任何元素都可以拖放。HTML5以IE的实例为基础指定了拖放规范。

一、基本释义

1 实现拖拽效果

* 要拖拽的文件是什么? - 源元素

* 要拖拽到哪里去? - 目标元素

2 目前实现拖拽效果

* 使用原生DOM就能实现 - 最麻烦

* 使用jQuery的插件 - 拖拽效果

* HTML5中提供的拖拽功能

二、HTML5中实现拖拽

1. 源元素事件

* dragstart - 当鼠标开始拖放时被触发

* drag - 当鼠标拖放过程中,类似于mousemove事件

* dragend - 当鼠标结束拖放时被触发

1 //为源元素绑定源元素事件

2 myimg.addEventListener("dragstart",MyDragStart);3 myimg.addEventListener("drag",MyDrag);4 myimg.addEventListener("dragend",MyDragEnd);

2. 目标元素事件

* dragenter - 当鼠标拖放进入到目标元素内被触发

* dragover - 当鼠标到达目前元素被触发

* 为该事件增加event.preventDefault();

* drop - 当鼠标实现拖放效果时被触发

* 默认情况下,该事件没有被触发

* 原因 - HTML页面默认情况下,不允许拖放

* 称之为HTML页面的默认行为

* 解决 - 阻止页面的默认行为

* 事件对象event.preventDefault()方法

* dragleave - 当鼠标拖放离开目标元素被触发

1 //为目标元素绑定事件

2 d2.addEventListener("dragenter",MyDragEnter);3 d2.addEventListener("dragover",MyDragOver);4 d2.addEventListener("drop",MyDrop);5 d2.addEventListener("dragleave",MyDragLeave);

3. dataTransfer对象

* 作用 - 类似于window系统的剪切板的功能

* 功能

* 可以将源元素的信息(数据),存储在这里

* 将存储在该对象的源元素信息,提供给目标元素

* 方法

* setData() - 设置(源元素)数据

* 在源元素事件中使用

* getData() - 获取设置的数据

* 在目标元素事件中使用

* clearData() - 清除(设置的)数据

* 所有的数据内容,存储在浏览器内存中

* 当使用完毕数据内容时,清除

* setDragImage()方法

* 作用 - 修改拖放过程中,鼠标跟随的图片效果

* 用法 - drag、dragstart等事件

* 注意 - 实际操作中,该方法几乎不用

4.可拖动

默认情况下,图像、链接和文本是可以拖动的,也就是说,不用额外编写代码,用户就可以拖动它们。文本只有在被选中的情况下才能拖动,而图像和链接在任何时候都可以拖动。

让其它元素可以拖动也是可能的。HTML5为所有HTML元素规定了一个draggable属性,表示元素是否可以拖动。图像和链接的draggable

属性自动被设置成了true,而其它元素这个属性的默认值都是false。要想让其它元素可拖动,或者让图像或链接不能拖动,都可以设置这个属性。例如:

1

2

3

4 ...

html5 拖拽绘图,HTML5 拖拽实现相关推荐

  1. html5拖放详解,HTML5拖拽/拖放(drag drop)详解

    H5中拖拽属性: draggable: auto | true | false 拖动事件: - dragstart 在元素开始被拖动时触发 - dragend 在拖动操作完成时触发 - drag 在元 ...

  2. html5学习(鼠标跟随和拖拽)

    温故知新,以下是我以前写的html5的案例,从电脑中翻出来了,算是知识复习和回顾吧! 有图有代码! <!DOCTYPE html> <html> <head> &l ...

  3. html页面展示关系图,可拖拽的html5人物关系图代码

    一款可拖拽的html5人物关系图代码,可以显示预设的人物头像.人物的关系等,可以鼠标拖拽来自由排列人物顺序,可以指定不同关系的连线样式. 查看演示 下载资源: 33 次 下载资源 下载积分: 20 积 ...

  4. 拖拽删除元素、拖拽排序、拖拽预览图片和拖拽移动元素

    介绍 HTML5 提供了专门的拖拽与拖放的 API,目前各浏览器都已支持,包括 IE.HTML 拖放(Drag and Drop)接口使应用程序能够在浏览器中使用拖放功能.例如,用户可使用鼠标选择可拖 ...

  5. js控制文件拖拽,获取拖拽内容。

    在用户拖拽文件到浏览器的某个元素上时,js可以监听到与拖拽相关的事件,并对拖拽结果进行处理,本文讨论下和拖拽文件相关的一些问题,不过没有处理太多关于兼容性的问题. 拖拽事件 js能够监听到拖拽的事件有 ...

  6. 拖拽之路(五):自定义QListWidget实现美观的拖拽样式(拖拽不影响选中 + doAutoScroll)

    环境配置 :MinGW + QT 5.12 效果图: 这种自定义拖拽样式的灵感来自于Chrome浏览器的书签栏.文章中所使用的自定义QListWidget来自于:自定义QListWidget实现ite ...

  7. 拖拽之路(四):自定义QListView实现美观的拖拽样式(拖拽不影响选中)

    环境配置 :MinGW + QT 5.12 效果图(左边是QListView拖拽即选中样式,右边是拖拽不影响选中样式): 这种自定义拖拽样式的灵感来自于Chrome浏览器的书签栏.本文中拖拽的特点是: ...

  8. 拖拽之路(二):自定义QListWidget实现美观的拖拽样式(拖拽不影响选中)

    环境配置 :MinGW + QT 5.12 效果图(左边是拖拽即选中,右边是拖拽不影响选中): 这种自定义拖拽样式的灵感来自于Chrome浏览器的书签栏.文章中所使用的自定义QListWidget来自 ...

  9. 拖拽之路(一):自定义QListWidget实现美观的拖拽样式(拖拽即选中)

    环境配置 :MinGW + QT 5.12 效果图(左边是QListWidget传统拖拽样式,右边是自定义拖拽样式): 这种自定义拖拽样式的灵感来自于Chrome浏览器的书签栏.文章中所使用的自定义Q ...

最新文章

  1. 写Struts2、Spring、Hibernate的xml配置文件时无提示
  2. python3 浮点型 字符串 整形 互转实例
  3. CIR,CBS,EBS,PIR,PBS傻傻分不清楚?看这里!—-揭秘令牌桶
  4. 三点到六点是几个小时_你被“8小时睡眠论”给骗了吗?!
  5. how does iv_included_delete work
  6. leetcode346. 数据流中的移动平均值
  7. dipole antenna simulation by HFSS
  8. python创建一个csv文件_python操作csv文件
  9. Adobe发布基于HTML5技术的网络开发工具以解决跨平台问题
  10. java day30【数据库连接池 、Spring JDBC : JDBC Template】
  11. 【天梯选拔月赛】参与者人数(并查集模版题!remember find_father写法!)
  12. BP神经网络模型---第一篇(M-P模型)
  13. 精美男女装、韩版、日系证件照素材合集,P个美美的证件照,不再烦恼
  14. 12个优秀的开源UML工具
  15. Excel 常用函数——关联匹配函数
  16. 华为开发后端实习体验总结帖(详细)
  17. 餐厅点菜c语言程序代码,C语言编程——餐馆点菜
  18. 一个简单的选品攻略,Shopee印尼站点卖家必看
  19. 通过CE寻找内存基址
  20. 四川教师职称计算机考试试题,四川省中小学教师职称计算机应用能力考试、外语免试审批表.doc...

热门文章

  1. 北京理工大学 计算机学院 李侃,李侃(北京理工大学教授李侃)_百度百科
  2. AD域用户加入域中的各个组解释
  3. 拓展半导体材料和零件领域 SK集团布局解读
  4. easyswoole not controller class match
  5. python-selenium学习笔记:运用验证码过滤登陆,验证是否登陆成功
  6. 计算机网络dna,DNA计算
  7. 秒换算 天 时 分 秒
  8. 最全的 explain解释
  9. python 头条 上传_基于Python的免费新闻头条接口查询
  10. 箕星药业任命罗万里任CEO;​赛诺菲成2024年巴黎奥运会和残奥会的高端合作伙伴 | 医药健闻...