注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

星期五

明天不上班

 
 
 

日志

 
 
关于我

一个特立独行的Java程序员,比较宅,上上网,写博客,听音乐,看电影。

网易考拉推荐

拖拽原理笔记  

2014-06-29 17:20:15|  分类: Web |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
实现拖拽效果: 直接在fiddle上运行 http://jsfiddle.net/hjzheng/GTaz3/3/

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
#div1 {
width: 100px;
height: 100px;
position: absolute;
background: red;
left: 0px;
right: 0px;
}
#div2 {
width: 100px;
height: 100px;
position: absolute;
background: greenyellow;
left: 0px;
right: 0px;
}
</style>
<script>
window.onload = function () {
var div1 = document.getElementById("div1");
var div2 = document.getElementById("div2");

drag(div1);
drag(div2);

function drag(obj) {
obj.onmousedown = function (evt) {
//使用全局捕获,
if (obj.setCapture) {
obj.setCapture()
}
var e = evt || window.event;
var disX = e.clientX - this.offsetLeft;
var disY = e.clientY - this.offsetTop;

document.onmousemove = function (evt) {
var e = evt || window.event;
obj.style.left = e.clientX - disX + "px";
obj.style.top = e.clientY - disY + "px";
}

document.onmouseup = function () {
document.onmousemove = document.onmouseup = null;

//释放全局捕获

 if (obj.releaseCapture) {
obj.releaseCapture();
}
}

return false;
}
}
}
</script>
</head>
<body>
<div id="div1"></div>
<div id="div2"></div>
</body>
</html>

拖拽原理
  • 鼠标和Div的相对距离不变
  • 三大事件 onmousedown, onmousemove and onmouseup
  • 把拖拽加到document上
拖拽原理 - 星期五 - 星期五
 
拖拽兼容性问题:
1. 拖拽的时候,如果有文字被选中,会产生问题
        原因:当鼠标按下的时候,如果页面中有文字被选中,那么会触发浏览器默认拖拽文字的效果
        解决:
                标准:阻止默认行为
                非标准ie:全局捕获
2. 拖拽图片会有问题,原因,解决的办法同上

关于全局捕获
设置全局捕获 ,当我们给一个元素设置全局捕获以后,那么这个元素就会监听后续发生的所有事件,当有事件发生的时候,就会被当前设置了全局捕获的元素所触发   
  •  IE : 有,并且有效果
  •  FF : 有,但是没效果
  •  Chrome : 没有
  评论这张
 
阅读(170)| 评论(0)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017