JS高级拖动技术 setCapture,releaseCapture


复制代码 代码如下:

<script type="text/javascript">
<!--
window.onload=function(){
objDiv = document.getElementById('drag');
drag(objDiv);
};
function drag(dv){
dv.onmousedown=function(e){
var d=document;
e = e || window.event;
var x= e.layerX || e.offsetX;
var y= e.layerY || e.offsetY;
//设置捕获范围
if(dv.setCapture){
dv.setCapture();
}else if(window.captureEvents){
window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
}
d.onmousemove=function(e){
e= e || window.event;
if(!e.pageX)e.pageX=e.clientX;
if(!e.pageY)e.pageY=e.clientY;
var tx=e.pageX-x;
var ty=e.pageY-y;
dv.style.left=tx;
dv.style.top=ty;
};
d.onmouseup=function(){
//取消捕获范围
if(dv.releaseCapture){
dv.releaseCapture();
}else if(window.captureEvents){
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
}
//清除事件
d.onmousemove=null;
d.onmouseup=null;
};
};
}
//-->
</script>
<div id="drag" style="position:absolute;left:12px;top:24px;width:100;height:150;border:1px solid #000000;z-index:1;background:#eeeeee">drag me</div>

setCapture 的意思就是设置一个对象的方法被触发的范围,或者作用域。
如果不设置,则div只在当前窗口内被触发。如果设置,则在整个浏览器范围内被触发,也就是可以拖到浏览器外面



相关阅读:
将Access数据库移植到SQLServer
RGB颜色值转HTML十六进制(HEX)代码的JS函数
WEB标准学习,认识两种网页声明的含义
Javascript控制target属性
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
Win2003自动登录的方法
jquery uaMatch源代码
用javascript实现源代码的隐藏与解密的方法
PHP中创建并处理图象
一个小助手批处理实例代码
改Windows系统字体颜色
Linux Ubuntu服务器版操作系统介绍
符合W3C网页标准的iframe标签的使用方法
z-blog评论留言的引用按钮写法详解
快速导航

Copyright © 2016 phpStudy |