views:

35

answers:

1

When the mouse starts hovering over an element because of scrolling (either by wheel, or by keyboard scrolling), it does not trigger a mouseover event on the elements it is hovering (Chrome 6 on OSX). What would be an elegant way to trigger the mouseover event for the correct elements when scrolling?

+2  A: 

Honestly, this is gonna be a pain. You'll have to

  1. determine the size and position of every element that should get a mouseover handler.
  2. add a scroll listener to the window.
  3. In the handler, get the mouse cursor position and pageOffset.
  4. Find out which element(s) the cursor is in.
  5. manually call the actual mouseover handler
  6. (Find out which elements the cursor has left, if you want some mouseout behaviour too)

You may need to re-calculate the elements' positions and sizes if they are dynamic. (move 1. beneath 3.)

While this should work fine with block-level elements, I have absolutely no idea on a solution for inline elements.

Pumbaa80
Ouch, that's what I'm afraid of. If there's no way of taking advantage of the browser doing this (it does this all the time anyway, no?), I can just skip this feature... still, would be nice.
Andrey Fedorov
Obviously, Chrome 6 does not do it all the time - or else the mouseover event would fire ;)
Pumbaa80