setCapture函数的作用就是将后续的mouse事件都发送给这个对象,releaseCapture就是将鼠标事件还回去,由 document、window、object之类的自行来处理,这样就保证了在拖动的过程中,不会由于经过了其它的元素而受到干扰。另外,还有一个很重要的事情是,在Win32上,mouse move的事件不是一个连续的,也就是说,并不是我们每次移动1px的鼠标指针,就会发生一个mousemove,windows会周期性检查mouse 的位置变化来产生mousemove的事件。所以,如果是一个很小的页面对象,比如一个直径5px的圆点,如果没有setCapture和 releaseCapture,那么在鼠标按住之后,快速的移动鼠标,就有可能鼠标移动走了,但是小圆点还在原地,就是因为下一次的mousemove事件已经不再发给这个圆点对象了。
本文来自优快云博客
本文详细介绍了setCapture与releaseCapture函数的作用。前者确保在拖动过程中,鼠标事件始终发送给指定对象,避免受其他元素干扰;后者则取消这种状态。此外,文中还解释了在Win32平台上,mousemove事件并非连续触发,而是周期性产生的特性。
5559

被折叠的 条评论
为什么被折叠?



