实例
在用户完成 e388a4556c0f65e1904146cc1a846bee 元素的拖动时执行 JavaScript :
<p draggable="true" ondragend="myFunction(event)">拖动我!</p>
登录后复制
定义和用法
ondragend 事件在用户完成元素或首选文本的拖动时触发。
拖放是 HTML5 中非常常见的功能。 更多信息可以查看我们 HTML 教程中的 HTML5 拖放。
注意: 为了让元素可拖动,需要使用 HTML5 draggable 属性。
提示: 链接和图片默认是可拖动的,不需要 draggable 属性。
在拖放的过程中会触发以下事件:
在拖动目标上触发事件 (源元素):
ondragstart - 用户开始拖动元素时触发
ondrag - 元素正在拖动时触发
ondragend - 用户完成元素拖动后触发
释放目标时触发的事件:
ondragenter - 当被鼠标拖动的对象进入其容器范围内时触发此事件
ondragover - 当某被拖动的对象在另一对象容器范围内拖动时触发此事件
ondragleave - 当被鼠标拖动的对象离开其容器范围内时触发此事件
ondrop - 在一个拖动过程中,释放鼠标键时触发此事件
浏览器支持
表格中的数字表示支持该事件的第一个浏览器的版本号。
![1509949031555047.png 2D6PB}IGYM9$O6`)N_@V_]W.png](https://img.php.cn//upload/image/236/844/280/1509949031555047.png)
语法
HTML 中:
<element ondragend="myScript">
登录后复制
JavaScript 中:
object.ondragend=function(){myScript};登录后复制
JavaScript 中, 使用 addEventListener() 方法: 注意: Internet Explorer 8 及更早 IE 版本不支持 addEventListener() 方法。object.addEventListener("dragend", myScript);登录后复制
技术细节
| 是否支持冒泡: | Yes |
| 是否可以取消: | No |
| 事件类型: | DragEvent |
| 支持的 HTML 标签: | All HTML elements |
更多实例
实例
以下实例演示了所有的拖放事件:
/* 拖动时触发*/
document.addEventListener("dragstart", function(event) {
//dataTransfer.setData()方法设置数据类型和拖动的数据
event.dataTransfer.setData("Text", event.target.id);
// 拖动 p 元素时输出一些文本
document.getElementById("demo").innerHTML = "开始拖动 p 元素.";
//修改拖动元素的透明度
event.target.style.opacity = "0.4";
});
//在拖动p元素的同时,改变输出文本的颜色
document.addEventListener("drag", function(event) {
document.getElementById("demo").style.color = "red";
});
// 当拖完p元素输出一些文本元素和重置透明度
document.addEventListener("dragend", function(event) {
document.getElementById("demo").innerHTML = "完成 p 元素的拖动";
event.target.style.opacity = "1";
});
/* 拖动完成后触发 */
// 当p元素完成拖动进入droptarget,改变div的边框样式
document.addEventListener("dragenter", function(event) {
if ( event.target.className == "droptarget" ) {
event.target.style.border = "3px dotted red";
}
});
// 默认情况下,数据/元素不能在其他元素中被拖放。对于drop我们必须防止元素的默认处理
document.addEventListener("dragover", function(event) {
event.preventDefault();
});
// 当可拖放的p元素离开droptarget,重置div的边框样式
document.addEventListener("dragleave", function(event) {
if ( event.target.className == "droptarget" ) {
event.target.style.border = "";
}
});
/*对于drop,防止浏览器的默认处理数据(在drop中链接是默认打开)
复位输出文本的颜色和DIV的边框颜色
利用dataTransfer.getData()方法获得拖放数据
拖拖的数据元素id("drag1")
拖拽元素附加到drop元素*/
document.addEventListener("drop", function(event) {
event.preventDefault();
if ( event.target.className == "droptarget" ) {
document.getElementById("demo").style.color = "";
event.target.style.border = "";
var data = event.dataTransfer.getData("Text");
event.target.appendChild(document.getElementById(data));
}
});登录后复制
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!
相关教程推荐
- 基于HTML5陀螺仪实现移动动画效果
- H5的服务器推送事件详解
- Canvas实现旋转风车的绘制
- H5的拖放功能详解
- phonegap播放音频详解
- H5的localStorage使用总结
- H5的头部meta标签如何使用
- 怎样用H5Canvas实现3D动态Chart图表
- html5中重新加载音频/视频元素的方法load()
- HTML5的data-*自定义属性是什么
- Dreamweaver中设置html网页段落行间距的方法指导
- AugularJS基础入门与实践
- http的方法,状态码和组成部分
- HTML5canvas实现中奖转盘的实例代码
- 常用的<meta>代码整理汇总
- JS之原生数组splice方法实例
- 如何解决滚动条样式问题
- Vue.directive()的图文详解
- html如何定义错误提示
- html5是什么意思
其他课程推荐
- PHP+MYSQL的筹建
- MYSQL多实例运作
- MySql主从同步设立
- 关系数据库和十样事物不能混为一谈
- 查询sqlserver所有表并改变其架构
- oracle修改用户登录密码
- Unity3d连接SQLServer数据库
- Weblogic8配置Oracle数据库连接池
- Oracle数据库入门之函数/类型
- 将HadoopRPC框架应用于多节点任务调度
- MySQL启动报错:File./mysql-bin.indexnotfound(Errcode:13
- php基础之连接mysql数据库和查询数据
- HBase入门7-安全&权限
- pl/sqldeveloper执行光标所在行
- [Oracle]DataGuardCPU/PSU补丁安装详细教程
- oracle物理结构和逻辑结构
- mongodb备份与恢复
- SeptemberMongoDBNews
- 在smarty模板中使用PHP函数的方法
- DedeCms模板安装/制作概述