浏览器多久调查鼠标位置?

时间:2015-08-28 05:49:48

标签: javascript google-chrome events browser mousemove

var mouseTrack = (function() {
        document.onmousemove = handleMouseMove;
        function handleMouseMove(event) {
            var dot, eventDoc, doc, body, pageX, pageY;

            event = event || window.event; // IE-ism

            // If pageX/Y aren't available and clientX/Y are,
            // calculate pageX/Y - logic taken from jQuery.
            // (This is to support old IE)
            if (event.pageX == null && event.clientX != null) {
                eventDoc = (event.target && event.target.ownerDocument) || document;
                doc = eventDoc.documentElement;
                body = eventDoc.body;

                event.pageX = event.clientX +
                  (doc && doc.scrollLeft || body && body.scrollLeft || 0) -
                  (doc && doc.clientLeft || body && body.clientLeft || 0);
                event.pageY = event.clientY +
                  (doc && doc.scrollTop  || body && body.scrollTop  || 0) -
                  (doc && doc.clientTop  || body && body.clientTop  || 0 );
            }

            console.log(event.pageX + ', ' + event.pageY);
            // document.body.innerHTML += '<div style="position:absolute;width:3px;height:3px;background:red;right:'+(window.innerWidth-event.pageX)+'px;top:'+event.pageY+'px;"></div>'
        }
    });
    mouseTrack();

(在浏览器中试试:) :)

如果您在整个页面上以高灵敏度比赛鼠标,则只能获得10-20的坐标设置。如果你慢慢地做,你将积累数百或数千点。

浏览器(比方说,Chrome)对鼠标位置的调查多久会触发mousemove事件甚至更好,我可以在哪里找到这个来源?

1 个答案:

答案 0 :(得分:2)

导致此效果的不是浏览器。实际上,浏览器根本不会轮询鼠标位置。

脚本引擎实现为每个命令花费了一定的执行时间,因此只能比较每隔几微秒的位置。如果检测到更改,则会引发事件。

在我眼中无法命名具体时间,因为单个命令的执行时间显然取决于您测试的系统的具体硬件和负载。