JavaScript 拖放效果 —— 小拖放也有大智慧
2010-09-14 13:25:12 来源:WEB开发网不过ff里貌似会自动设置取消鼠标捕获,但具体的情形就不清楚了,找不到一个比较详细的介绍,谁有这方面的资料记得告诉我啊。
下面都是我的猜测,ff的鼠标捕获相当于能自动设置和释放的document.body.setCapture(false)。
因为我测试下面的程序,发现ie和ff效果是差不多的:
ie:
Code
<html>
<body>
<divid="aa"onmouseover="alert(1)"></div>
<script>
document.body.onmousedown=function(){this.setCapture(false)}
document.body.onmouseup=function(){this.releaseCapture()}
document.onmousemove=function(){aa.innerHTML+=1}
</script>
</body>
</html>
ff:
Code
<html>
<body>
<divid="aa"onmouseover="alert(1)"></div>
<script>
document.onmousemove=function(){aa.innerHTML+=1}
</script>
</body>
</html>
可惜没有权威的资料参考就只能猜猜了,还有很多还没有理解的地方以后再研究拉。
注意ff2下的鼠标捕获有一个bug,当拖放对象内部没有文本内容并拖放到浏览器外时捕获就会失效。
给拖放对象插入一个空文本,例如<font size='1px'> </font>就可以解决,不过这个bug在ff3已经修正了。
【焦点丢失】
一般情况下,鼠标捕获都能正常捕获事件,但如果浏览器窗口的焦点丢失就会导致捕获失效。
我暂时测试到会导致焦点丢失的操作包括切换窗口(包括alt+tab),alert和popup等弹出窗体。
Tags:JavaScript 效果 智慧
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接