我有一个问题,我需要知道用户在进入全屏模式时是否真正移动了鼠标,或者仅仅是进入全屏模式的副作用。
因为在进入全屏模式时,鼠标Y坐标会自动更改,因为鼠标会在绝对屏幕位置上向上移动(因为浏览器的顶部导航消失了)。而且由于每个浏览器都以全屏模式发出通知,因此该通知会触发mousemove事件。
因此,这使得找出用户是否按鼠标移动鼠标非常痛苦。
是否有解决方案来识别真正的鼠标移动?
$(document).on('mousemove', function(event){
/* gets also triggered when just entering fullscreen,
but without actual movement of the physical mouse..
how can this be identified/ignored?
*/
});
我已经尝试过使用类似的方法来使鼠标位置相对应window.screen.top
-但这到目前为止尚未被任何浏览器实现。
我现在通过保存鼠标坐标来解决它,并检查它们是否更改-我在全屏后强制执行一次mousemove事件以一次更新坐标。
$(document).on('mousemove', function(event){
if(event.pageX == $(this).data('mouseX') && event.pageY == $(this).data('mouseY'))
return;
$(this)
.data('mouseX', event.pageX)
.data('mouseY', event.pageY)
;
});
$(document).mousemove();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句