JS高级拖动技术 setCapture,releaseCapture

 更新时间:2011年07月31日 23:39:32   作者:  
setCapture 的意思就是设置一个对象的方法被触发的范围,或者作用域。
复制代码 代码如下:

<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只在当前窗口内被触发。如果设置,则在整个浏览器范围内被触发,也就是可以拖到浏览器外面

相关文章

  • JavaScript避免嵌套代码浅析

    JavaScript避免嵌套代码浅析

    这篇文章主要介绍了JavaScript避免嵌套代码,很多时候需要编写的逻辑本身就很恶心, 乍看之下, 堆页岩般的判定嵌套里似乎每一层都是必要的, 也只能说尽量让它看起来不那么恶心
    2023-02-02
  • JS基于递归实现倒计时效果的方法

    JS基于递归实现倒计时效果的方法

    这篇文章主要介绍了JS基于递归实现倒计时效果的方法,结合实例形式分析了javascript基于递归算法实现倒计时功能的相关操作技巧,需要的朋友可以参考下
    2016-11-11
  • 微信小程序上传图片到别的域名文件下的示例代码

    微信小程序上传图片到别的域名文件下的示例代码

    这篇文章主要介绍了微信小程序上传图片到别的域名文件下的示例代码,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-12-12
  • 微信小程序 扭蛋抽奖机css3动画实现详解

    微信小程序 扭蛋抽奖机css3动画实现详解

    这篇文章主要介绍了微信小程序 扭蛋抽奖机css3动画实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 原生js 实现表单验证功能

    原生js 实现表单验证功能

    这篇文章主要介绍了原生js如何实现表单验证功能,帮助大家更好的理解和使用JavaScript,感兴趣的朋友可以了解下
    2021-02-02
  • JavaScript使用HTML5的window.postMessage实现跨域通信例子

    JavaScript使用HTML5的window.postMessage实现跨域通信例子

    这篇文章主要介绍了JavaScript使用HTML5的window.postMessage实现跨域通信例子,需要的朋友可以参考下
    2014-04-04
  • uniapp小程序的图片(视频)上传的组件封装方法

    uniapp小程序的图片(视频)上传的组件封装方法

    这篇文章主要介绍了uniapp做小程序的图片(视频)上传的组件封装,要求实现多张图片的上传 ,可以限制图片上传的数量,图片预览,多次使用对图片的上传顺序排序,需要的朋友可以参考下
    2024-02-02
  • js放到head中失效的原因与解决方法

    js放到head中失效的原因与解决方法

    本文主要介绍了js放到head中有时候会失效的原因以及解决方法,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • javascript设计模式之中介者模式Mediator

    javascript设计模式之中介者模式Mediator

    这篇文章主要介绍了javascript设计模式之中介者模式Mediator,需要的朋友可以参考下
    2014-12-12
  • js加减乘除精度丢失问题解决

    js加减乘除精度丢失问题解决

    计算机的二进制实现和位数限制有些数无法有限表示,就会产生精度丢失问题,本文主要介绍了js加减乘除精度丢失问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09

最新评论