How we built it

Stop sending mouse position updates during scrolling

While scrolling via trackpad or mousewheel, we previously sent mouse position updates every 100ms. On pages with heavy mouse handlers or :hover styles, this could cause significant amounts of scroll jank. Sending a mouse position update includes updating :hover styles, and dispatching mousemove, mouseover, mouseenter, mouseleave, and mouseout events. We’re planning to stop sending mouse position updates while scrolling. Instead, we'll trigger this behavior 100ms after scrolling ends.


Here's an example of a user facing behavior change, using the jQuery UI tooltip ( To see the behavior difference, place the mouse cursor over the red box, then scroll via mouse wheel or trackpad. Without this change, every 100ms, the tooltip moves to the location of the cursor. With this change, the tooltip only moves once scrolling is complete.


Status in Chromium

Enabled by default (launch bug) in:

  • Chrome for desktop release 45
  • Chrome for Android release 45
  • Android WebView release 45

Consensus & Standardization


Last updated on 2015-07-02