setCapture这个事,move,drag

setCapture一般用在drag move,resize的实现上。它只能在IE上使用,目的是为了捕获onclick, ondblclick, onmousedown, onmouseup, onmousemove, onmouseout, 和onmouseover这类鼠标事件,不让目标节点失去捕获。

又是你可能会看到像dragmove这样的实现将mousemove这样的事件监听到document上面,这样的做法是过时的。在IE下只要你调用了setCapture,就不会出现鼠标移出目标节点就捕获不到事件的事情了。对于非IE浏览器或者IE9之后的IE,只要使用addEventListener就可以达到同样的效果。但是当鼠标快速移动时,IE里面还是要表现好很多,特别是有iframe的情况,IE根本不受鼠标移到iframe上的影响。而其他浏览器则由于鼠标事件属于iframe的dom造成移动停止。

改进方案是按照extjs的做法,移动时将原来的element隐藏,而只构建一个与原来element同样大小,位置的element.对此element进行移动,再将新的位置结果赋值给原来的element。


Total views.

© 2013 - 2024. All rights reserved.

Powered by Hydejack v6.6.1