JS setCapture 区域外事件捕捉
不过setCapture不支持键盘事件, 只能捕获以下鼠标事件:onmousedown、onmouseup、onmousemove、onclick、ondblclick、onmouseover和onmouseout。
程序中主要是要捕获onmousemove和onmouseup事件。
msdn的介绍中还说到setCapture有一个bool参数,用来设置在容器内的鼠标事件是否都被容器捕获。
参数为true时(默认)容器会捕获容器内所有对象的鼠标事件,即容器内的对象不会触发鼠标事件(跟容器外的对象一样);
参数为false时容器不会捕获容器内对象的鼠标事件,即容器内的对象可以正常地触发事件和取消冒泡。
object.setCapture() 当一个object的被 setCapture 后,他的方法将会被继承到整个文档进行捕获。当不需要把方法继承到整个文档捕获时,要用 object.releaseCapture() 来释放.
Mozilla 也有类似的功能,方法稍微不同
window.captureEvents(Event.eventType)
window.releaseEvents(Event.eventType)
事例:
代码如下:
<HTML>
<BODY>
<div id="m_Div" style="width:200px;height:200px;border:1px solid #b0bca5;padding:2px" onclick="alert('Hello')">点一下IE的菜单或者按钮看看:)
又或者IE窗口外的地方</div>
<SCRIPT LANGUAGE="JavaScript">
<!--
document.getElementById("m_Div").setCapture()
//-->
</SCRIPT>
</BODY>
</HTML>
在调用setCapture()后, 捕捉到事件后自动释放, 如果在连续对事件捕捉,需要在调用的事件里再次执行setCaptuer()
相关推荐
-
Javascript 事件捕获的备忘(setCapture,captureEvents)
这段时间一直在给QZone研究Js拖放的问题.今天突然发现live.com的模块拖放居然可以跨出浏览器.到底是什么方法让 mousemove 和 mouseup 事件可以到浏览器外也可以触发,于是把整个live的js down下来分析,结果发现是一个小小的函数在做"怪" . object.setCapture() 当一个object的被 setCapture 后,他的方法将会被继承到整个文档进行捕获. 当不需要把方法继承到整个文档捕获时,要用 object.releaseCaptu
-
JS拖动技术 关于setCapture使用
JS拖动技术--- 关于setCapture (转自 剑胆琴心-.Net学习笔记) 复制代码 代码如下: <script type="text/javascript"> <!-- window.onload=function(){ objDiv = document.getElementById('drag'); drag(objDiv); }; function drag(dv){ dv.onmousedown=function(e){ var d=document
-
HTML中的setCapture和releaseCapture使用介绍
另外,还有一个很重 要的事情是,在Win32上,mouse move的事件不是一个连续的,也就是说,并不是我们每次移动1px的鼠标指针,就会发生一个mousemove,windows会周期性检查mouse 的位置变化来产生mousemove的事件. 所以,如果是一个很小的页面对象,比如一个直径5px的圆点,如果没有setCapture和 releaseCapture,那么在鼠标按住之后,快速的移动鼠标,就有可能鼠标移动走了,但是小圆点还在原地,就是因为下一次的mousemove事 件已经不再发给
-
HTML中setCapture、releaseCapture 使用方法浅析
1. setCapture 简介 setCapture可以将鼠标事件锁定在指定的元素上,当元素捕获了鼠标事件后,该事件只能作用在当前元素上. 以下情况会导致事件锁定失败: 当窗口失去焦点时,锁定的事件,自动就会取消. alert也会导致事件的锁定取消.解决办法是在alert之后再次锁定. 鼠标右键也会导致事件解锁. setCapture只可以作用于以下事件: onclick ondblclick onmousedown onmouseup onmouseover onmouseout setCa
-
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 |
-
JS setCapture 区域外事件捕捉
不过setCapture不支持键盘事件, 只能捕获以下鼠标事件:onmousedown.onmouseup.onmousemove.onclick.ondblclick.onmouseover和onmouseout. 程序中主要是要捕获onmousemove和onmouseup事件. msdn的介绍中还说到setCapture有一个bool参数,用来设置在容器内的鼠标事件是否都被容器捕获. 参数为true时(默认)容器会捕获容器内所有对象的鼠标事件,即容器内的对象不会触发鼠标事件(跟容器外的对象
-
js中的事件捕捉模型与冒泡模型实例分析
本文实例讲述了js中的事件捕捉模型与冒泡模型.分享给大家供大家参考. 具体实现方法如下: 实例1: 复制代码 代码如下: <html> <head> <script type="text/javascript"> window.onload = function(){ document.getElementById('par').addEventListener('click',function() {alert('par');},true);
-
深入理解事件冒泡(Bubble)和事件捕捉(capture)
事件的发生顺序 假设在一个元素中又嵌套了另一个元素并且两者都有一个onClick事件处理函数(event handler).如果用户单击元素2,则元素1和元素2的单击事件都会被触发.但是哪一个事件先被触发?哪一个事件处理函数会被首先执行?换句话说,事件的发生顺序到底如何?如下图是当点击span元素区域是,三个点击事件都会被触发,但是先后顺序是怎样的呢? <div onclick="func1"> <p onclick="func2"> <
-
jQuery实现指定区域外单击关闭指定层的方法【经典】
本文实例讲述了jQuery实现指定区域外单击关闭指定层的方法.分享给大家供大家参考,具体如下: 在页面上指定区域外单击,关闭层.常见效果为弹出层外单击,关闭弹出层.今天遇到一个这样的效果,用jQuery实现起来挺简单的,顺便复习了一下相关知识. $(document).mouseup(function(e){ if($(e.target).parent("#big_map").length==0){ $("#big_map").hide("fast&quo
-
关于js中removeEventListener取消事件监听的坑
从addEventListener说起,上代码 onMounted(() => { window.addEventListener("click", ()=>{ doSth(param)//param为参数 }) }) addEventListener有一个箭头函数回调函数,这个函数本身不能传参(当然event除外),如果你要传参,只能在doSth函数上传,我们也可以将箭头函数回调函数替换成一个函数,但是这个函数明显不能有参数 onMounted(() => { wi
-
JS手机端touch事件计算滑动距离的方法示例
本文实例讲述了JS手机端touch事件计算滑动距离的方法.分享给大家供大家参考,具体如下: 计算手势在手机屏幕上滑动时,手势滑动的距离,代码如下: function wetherScroll(){ var startX = startY = endX =endY =0; var body=document.getElementsByTagName("body"); body.bind('touchstart',function(event){ var touch = event.tar
-
Vue.JS入门教程之事件监听
你可以使用 v-on 指令来绑定并监听 DOM 事件.绑定的内容可以是一个当前实例上的方法 (后面无需跟括号) 或一个内联表达式.如果提供的是一个方法,则原生的 DOM event 会被作为第一个参数传入,同时这个 event 会带有 targetVM 属性,指向触发该事件的相应的 ViewModel: <div id="demo"> <a v-on="click: onClick">触发一个方法函数</a> <a v-on
-
JS中dom0级事件和dom2级事件的区别介绍
dom0级事件 <a href="#" id="hash" onclick="fn();fn();"> <button type="button">返回上面进行开通</button> </a> var btn=$('#hash').get(); btn.onclick=function(){ alert(''); }; btn.onclick=function(){ alert(
-
两种js监听滚轮事件的实现方法
前段时间在写前端的时候,需要监听浏览器的滚轮事件 网上查了一下,找到两种监听滚轮事件的方法: 一.原生js通过window.onscroll监听 //window.onscroll = function() {//为了保证兼容性,这里取两个值,哪个有值取哪一个 var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; //scrollTop就是触发滚轮事件时滚轮的高度 } 二.Jquery通过$(
-
关于js中的鼠标事件总结
js中鼠标事件主要有onclick,onmousedown,onmouseup,oncontextmenu,ondblclick,所有的这些事件都包含有一个事件对象event,当然在IE低版本下,event对象是挂在window底下的.这个我们另行讨论. 1.通过html添加事件 <input type="button" click="alert(1)"/> 2.通过DOM0级方式添加事件 <input type="button"
随机推荐
- angular中不同的组件间传值与通信的方法
- 动态创建Angular组件实现popup弹窗功能
- Redis数据库的使用场景介绍(避免误用Redis)
- vue页面使用阿里oss上传功能的实例(一)
- 正则表达式替换html元素属性的方法
- 批处理应用 OFFICE复位
- JavaEE开发之SpringMVC中的自定义消息转换器与文件上传
- react-native使用react-navigation进行页面跳转导航的示例
- javascript带回调函数的异步脚本载入方法实例分析
- php面向对象全攻略 (一) 面向对象基础知识
- JS中正则表达式只有3种匹配模式(没有单行模式)详解
- 基于javascript实现动态时钟效果
- Android调用手机拍照功能的方法
- javascript实现根据汉字获取简拼
- jquery动态添加删除一行数据示例
- jquery实现checkbox全选全不选的简单实例
- JS简单实现仿百度控制台输出信息效果
- 服务器的MSDTC不可用解决办法
- visual studio 2012安装配置方法图文教程 附opencv配置教程
- php通过session防url攻击方法