drag事件
<!DOCTYPE HTML>
<html>
<head>
<title>拖动事件</title>
<style>
*{padding: 0;margin:0}
body{font-size:14px;font-family: "微软雅黑";background:#333}
#box1{width:60px;height:80px;background:#888;text-align:center;border:1px solid #ccc;}
#box2{width:320px;height:420px;background:#fff;position:absolute;right:0;bottom:0}
</style>
</head>
<body>
<div id="box1" draggable="true">
<span draggable="true">Box1</span>
<a href="#">Link</a>
</div>
<div id="box2" draggable="true">
Box2
<img src=""/>
</div>
<script type="text/javascript">
/*
在html5新特性:元素的拖放draggable
ndragstart:拖拽开始 onmousedown
ondrag:拖动中 onmonsemove
ondragend:拖放结束:onmouseup
针对当一些进入目标时候执行的回调函数,用途( 购物车)
ondragenter:元素进入目标区域时触发
ondragover:元素在目标区域上时触发
ondragleve:元素从目标区域离开时触发
ondrop:有元素进入在目标区域内释放时触发
*/
window.onload = function(){
var boxDom1 = document.getElementById("box1");
var boxDom2 = document.getElementById("box2");
/*拖动元素事件 Start*/
boxDom1.addEventListener("dragstart", function(){
console.log("box1开始了拖拽了--dragstart");
}, false);
boxDom1.addEventListener("drag", function(e){
console.log("box1拖拽中--drag");
}, false);
boxDom1.addEventListener("dragend", function(){
console.log("box1拖放结束--dragend");
}, false);
boxDom1.addEventListener("dragover", function(e){
console.log("box1有元素在其上方--dragover");
e.preventDefault();
}, false);
/*拖动元素事件 End*/
/*目标元素事件 Start*/
boxDom2.addEventListener("dragover", function(e){
console.log("box2有元素在目标区域上方dragover");
//此处要阻止事件冒泡,否则drop事件不能触发
e.preventDefault();
}, false);
boxDom2.addEventListener("dragenter", function(){
console.log("box2 有元素进入目标区域--dragenter");
}, false);
boxDom2.addEventListener("dragleave", function(){
console.log("box2有元素离开目标区域--dragleave");
}, false);
boxDom2.addEventListener("drop", function(){
console.log("box有元素在目标区域释放--drop");
}, false);
/*目标元素事件 End*/
};
</script>
</body>
</html>
drag事件的更多相关文章
- HTML5--拖动02-dragstart、drag、dragenter、dragover、dragleave、drop、dragend属性
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- DOM事件类型详解
一.表单事件: input事件当<input>.<textarea>的值发生变化时触发.此外,打开contenteditable属性的元素,只要值发生变化,也会触发input事 ...
- javascript高级程序设计---拖拉事件
拖拉事件 拖拉指的是,用户在某个对象上按下鼠标键不放,拖动它到另一个位置,然后释放鼠标键,将该对象放在那里. 拖拉的对象有好几种,包括Element节点.图片.链接.选中的文字等等.在HTML网页中, ...
- HTML5 drag & drop 拖拽与拖放简介
DataTransfer 对象:退拽对象用来传递的媒介,使用一般为Event.dataTransfer. draggable 属性:就是标签元素要设置draggable=true,否则不会有效果,例如 ...
- Win7下的DragEnter、DragDrop事件不触发的解决方案
Win7与原来的XP和Win2003相比,安全控制方面更严格.比如,当我们以administrator登陆XP或Win2003时,运行所有的程序即是以管理员的身份启动的.但当以administrato ...
- 原生 drag drop HTML5
drag事件( dragstart -- drag -- dragend ) 当按下鼠标开始drag一个可以拖动的对象时,触发dragstart事件,如果元素是不可拖动的话,会出现一个不可拖动的图 ...
- HTML DOM 事件对象 ondragend 事件
学习网站:http://www.runoob.com/jsref/event-ondragend.html 定义和用法 ondragend 事件在用户完成元素或首选文本的拖动时触发. 拖放是 HTML ...
- javaScript drag对象进行拖拽使用详解
目录 drag简介 兼容性 drag事件 拖拽流程 DataTransfer对象 drag拖放桌面文件 drag实例 小结 drag简介 HMTL5提供的支持原生拖拽的实现 兼容性如何? 桌面端的支持 ...
- 关于d3.js 将一个element 拖拽到另一个element的响应事件
rt 正在做机柜可视化, 一个需求是能拖拽左侧列表的设备名称, 拖到右侧42U机柜中,并将设备图片放置在对应机柜位置上. 开始的时候一切都很顺利,点击左侧设备名称,添加一个g容器,将设备名称作为tex ...
随机推荐
- Security基础(二):SELinux安全防护、加密与解密应用、扫描与抓包分析
一.SELinux安全防护 目标: 本案例要求熟悉SELinux防护机制的开关及策略配置,完成以下任务: 将Linux服务器的SELinux设为enforcing强制模式 在SELinux启用状态下, ...
- mysql完美增量备份脚本
是否因为mysql太大,来回备份浪费资源带宽而发愁,如果想解决这个麻烦就需要增量备份. vi /etc/my.cnf开启日志及定期清理日志log-bin=mysql-binbinlog_format= ...
- CSS入门之盒模型(六分之四)
盒模型要点知识 务必注意看,这可是前端面试 必定会遇到 的问题. box-sizing 盒模型的主要CSS属性,除继承外有两个值: content-box 这里不再细说历史原因,只说其作用. cont ...
- 93、R语言教程详解
加载数据 > w<-read.table("test.prn",header = T) > w X.. X...1 1 A 2 2 B 3 3 C 5 4 D 5 ...
- 88、展示Tensorflow计算图上每个节点的基本信息以及运行时消耗的时间和空间
''' Created on May 24, 2017 @author: p0079482 ''' #使用程序输出日志 import tensorflow as tf with tf.Session( ...
- 避开PCB假八层结构的温柔陷阱---浅谈六层板的叠层
https://blog.csdn.net/qijitao/article/details/51505611 作者:王辉东 一博科技高速先生团队队员 在<PCB的筋骨皮>一文中,我们提 ...
- 2019杭电多校第六场hdu6638 Snowy Smile(线段树+枚举)
Snowy Smile 题目传送门 解题思路 先把y离散化,然后把点按照x的大小进行排序,我们枚举每一种x作为上边界,然后再枚举其对应的每一种下边界.按照这种顺序插入点,这是一个压维的操作,即在线段树 ...
- Loadrunner test web service which need username and password
Action(){ char * position; char * str; int offset; char * search_str = "ERROR"; // web_s ...
- Java继承和构造函数
构造函数不是类的成员,它们不是由子类继承的.它们用于初始化实例变量. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 class CSuper { public ...
- JasperReports教程
JasperReports教程 Jasper报表是一个开源的Java报表引擎,是基于Java的,它没有自己的表达式语法. 由于JasperReports是一个Java类库,而不是针对最终用户,而是有针 ...