社区
JavaScript
帖子详情
setCapture()的问题
Tomoyo
2008-05-17 03:36:51
我在Javascript下做一个用鼠标移动层的小程序时
看到别人在onmousedown中加了一句
document.getElementById(obj).setCapture();
和onmouseup中加了一句
document.getElementById(obj).releaseCapture();
这两句代码我删除后程序依然可以运行,请问这两句是做什么用的?
...全文
207
9
打赏
收藏
setCapture()的问题
我在Javascript下做一个用鼠标移动层的小程序时 看到别人在onmousedown中加了一句 document.getElementById(obj).setCapture(); 和onmouseup中加了一句 document.getElementById(obj).releaseCapture(); 这两句代码我删除后程序依然可以运行,请问这两句是做什么用的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Navymk
2008-05-17
打赏
举报
回复
setCaptrue及release都是ie浏览器专有的
比如做一个拖拽效果
捕获事件一般都要涉及onmousedown,onmouseover等等
如果不setCapture的话
在获取并对象拖动的时候,如果鼠标离开了对象(比如速度过快的时候),就会触发别的对象onmouseout或者onmouseover事件,那么拖拽的对象就会丢失.
这个东西很好,致命的就是不跨浏览器.
Tomoyo
2008-05-17
打赏
举报
回复
什么意思测度用?
yinchuanshuxiu
2008-05-17
打赏
举报
回复
测试用
Tomoyo
2008-05-17
打赏
举报
回复
<script language="javascript">
var huc = ''
var imax = <%=t%>;
document.onmouseup = hue;
document.onmousemove = hus;
var X;
var Y;
function hum(Object, event)
{
huc = Object.id;
document.getElementById(huc).setCapture(); //'''''''''''''''''
X = event.x - document.getElementById(huc).style.pixelLeft;
Y = event.y - document.getElementById(huc).style.pixelTop;
document.getElementById(huc).style.zIndex = imax;
imax = imax + 1;
}
function hus()
{
if(huc!=''){
document.getElementById(huc).style.left = event.x - X;
document.getElementById(huc).style.top = event.y - Y;
}
}
function hue()
{
document.getElementById(huc).releaseCapture();
huc='';
}
function hud(d)
{
document.getElementById(d).style.visibility = 'hidden';
}
</script>
lenco124
2008-05-17
打赏
举报
回复
[Quote=引用 4 楼 Tomoyo 的回复:]
就是能不能稍微说明白一点,这两句东西用了和没用的分别
[/Quote]
你把你认为没用的代码 发上来瞧瞧。。。
Tomoyo
2008-05-17
打赏
举报
回复
就是能不能稍微说明白一点,这两句东西用了和没用的分别
Tomoyo
2008-05-17
打赏
举报
回复
大哥,那到底有什么用?
lenco124
2008-05-17
打赏
举报
回复
var obj = document.getElementById(obj);
obj.srcElement;
or
obj.target;
lenco124
2008-05-17
打赏
举报
回复
document.getElementById(obj).setCapture();
document.getElementById(obj).releaseCapture();
俘获对象
释放对象
set
Capture
和release
Capture
的小应用
web开发和windows开发最大的区别就是windows开发是有状态的,而web开发是无状态的,在windows中,一切操作都可以由程序来控制 ,除非强制执行ctrl+alt+del;但web操作就不一样了,即使执行很重要的操作,用户一点击浏览器关闭按钮,就将前面操作成果化为乌有.尽管可以在onunload事件中加些代码,让用户可以选择是否退出,但不能从根本上解决
问题
!
前几天,从网上看到
set
Capture
方法,了解了一下,大体是这样的意思,当在IE文档某个区域中使用了这个方法,并且写了onclick或者 onmouse***等有关的鼠标事件方法,那么它就会监视相应的鼠标操作,即使你的鼠标移出了IE,它也一样能捕获到.如果你在某div中的 onclick事件中写了一个alert命令,这时,你点击的关闭按钮,它也一样会弹出alert窗口.release
Capture
与
set
Capture
方法相反,释放鼠标监控.
利用这个特性,我们可以延缓IE的关闭窗口等破坏性操作,将一些重要的操作能够在破坏性操作执行之前得到处理.
关于实例的说明,见:http://blog.csdn.net/redleaf1995/archive/2008/03/06/2154784.aspx
JS高级拖动技术
set
Capture
,release
Capture
set
Capture
的意思就是设置一个对象的方法被触发的范围,或者作用域。
IE8利用自带的
set
Capture
和release
Capture
解决iframe的拖拽事件方法
最近有个需求须要实现左右拖拽功能,页面右边是个iframe页面,在chrome测试通过之后,发现在ie8上面效果不是很理想,最后查找资料得知可以使用ie自带的
set
Capture
和release
Capture
来解决。 sideDragBar.on('mousedown.sideMenu', function(e){ this.
set
Capture
&& this.
set
Capture
();// ie下可以使用
set
Capture
来解决object拖拽
问题
startDragging(e); }); function removeDocumentListeners(e){ this.rele
JS拖动技术 关于
set
Capture
使用
JS拖动技术 关于
set
Capture
使用,学习js拖动效果的朋友可以参考下。
JS
set
Capture
区域外事件捕捉
鼠标捕获(
set
Capture
)作用是将鼠标事件捕获到当前文档的指定的对象。这个对象会为当前应用程序或整个系统接收所有鼠标事件。
JavaScript
87,907
社区成员
224,614
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章