html5中在可拖动元素或选取的文本放置在目标区域时触发的事件ondrop

实例

在可拖动元素放置在 <div> 元素中时执行 JavaScript:

<div ondrop=myFunction(event)></div>

定义和用法

ondrop 事件在可拖动元素或选取的文本放置在目标区域时触发。

拖放是 HTML5 中非常常见的功能。 更多信息可以查看我们 HTML 教程中的 HTML5 拖放。

注意: 为了让元素可拖动,需要使用 HTML5 draggable 属性。

提示: 链接和图片默认是可拖动的,不需要 draggable 属性。

在拖放的过程中会触发以下事件:

在拖动目标上触发事件 (源元素):

  • ondragstart - 用户开始拖动元素时触发

  • ondrag - 元素正在拖动时触发

  • ondragend - 用户完成元素拖动后触发

释放目标时触发的事件:

  • ondragenter - 当被鼠标拖动的对象进入其容器范围内时触发此事件

  • ondragover - 当某被拖动的对象在另一对象容器范围内拖动时触发此事件

  • ondragleave - 当被鼠标拖动的对象离开其容器范围内时触发此事件

  • ondrop - 在一个拖动过程中,释放鼠标键时触发此事件

浏览器支持

注意: 在拖动元素时,每隔 350 毫秒会触发 ondragover 事件。

}VTC6Q(W1%$$6AQH%97YK}M.png

语法

HTML 中:

<element ondrop=myScript>

JavaScript 中:

object.ondrop=function(){myScript};

JavaScript 中, 使用 addEventListener() 方法:

object.addEventListener(drop, myScript);

注意: Internet Explorer 8 及更早 IE 版本不支持 addEventListener() 方法。

技术细节

是否支持冒泡:Yes
是否可以取消:Yes
事件类型: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));
    }
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


HTML5和CSS3实现3D展示商品信息的代码
利用HTML5中的Canvas绘制笑脸的代码
Html5剪切板功能的实现
如何通过HTML5触摸事件实现移动端简易进度条
Html5移动端获奖无缝滚动动画实现
关于HTML5和CSS3实现机器猫的代码
HTML5使用DOM进行自定义控制
使用HTML5 Canvas绘制阴影效果的方法
使用PHP和HTML5 FormData实现无刷新文件上传
如何解决HTML5 虚拟键盘出现挡住输入框的问题
HTML5中div和section以及article的区别分析
html5和CSS 实现禁止IOS长按复制粘贴功能
html5 touch事件实现触屏页面上下滑动
canvas 模拟实现电子彩票刮刮乐的代码
HTML5 Plus 实现手机APP拍照或相册选择图片上传的功能
Android自定义环形LoadingView效果
HTML5 canvas绘制五角星的方法
html5使用html2canvas实现浏览器截图
使用Canvas处理图片的方法介绍
利用Canvas模仿百度贴吧客户端loading小球的方法