WEB开发网
开发学院网页设计JavaScript JavaScript 拖放效果 —— 小拖放也有大智慧 阅读

JavaScript 拖放效果 —— 小拖放也有大智慧

 2010-09-14 13:25:12 来源:WEB开发网   
核心提示: 使用很简单:this._Handle.setCapture();setCapture捕获以下鼠标事件:onmousedown、onmouseup、onmousemove、onclick、ondblclick、onmouseover和onmouseout,程序中主要是要捕获onmousemo

使用很简单:

this._Handle.setCapture();

setCapture捕获以下鼠标事件:onmousedown、onmouseup、onmousemove、onclick、ondblclick、onmouseover和onmouseout。

程序中主要是要捕获onmousemove和onmouseup事件。

msdn的介绍中还说到setCapture有一个bool参数,用来设置在容器内的鼠标事件是否都被容器捕获。

容器就是指调用setCapture的对象,大概意思就是:

参数为true时(默认)容器会捕获容器内所有对象的鼠标事件,即容器内的对象不会触发鼠标事件(跟容器外的对象一样);

参数为false时容器不会捕获容器内对象的鼠标事件,即容器内的对象可以正常地触发事件和取消冒泡。

而对于容器外的鼠标事件无论参数是什么都会被捕获,

可以用下面这个简单的例子测试一下(ie):

Code

<html>
<bodyonclick="alert(2)">
<divonmousemove="alert(1)">mouseover</div>
<script>document.body.setCapture();</script>
</body>
</html>

这里的参数是true,一开始body会捕获所有鼠标事件,即使鼠标经过div也不会触发onmousemove事件。

换成false的话,div就可以捕获鼠标事件,就能触发onmousemove事件了。

拖放结束后还要使用releaseCapture释放鼠标,这个可以放在Stop程序中:

this._Handle.releaseCapture();

setCapture是ie的鼠标捕获方法,对于ff也有对应的captureEvents和releaseEvents方法。

但这两个方法只能由window来调用,而且muxrwc说这两个方法在DOM2里已经废弃了,在ff里已经没用了。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:JavaScript 效果 智慧

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接