Bug 4117

Summary: :hover, onmouseout, and onmouseover events don't trigger when objects move under mouse
Product: WebKit Reporter: Samrod <samg0d>
Component: DOMAssignee: Nobody <webkit-unassigned>
Status: NEW    
Severity: Normal CC: alexandernst, ap, arvind.2111, bfulgham, bruckner.roman, camaro396, gbonanome, ian, imnicastelo, julian.hollmann, mail, nbenitezl, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: 412   
Hardware: Mac   
OS: OS X 10.4   
URL: http://samrod.com/random/handlevent.html
Attachments:
Description Flags
onMouseOver causes page to scrollby() onMouseOut doesn't fire none

Samrod
Reported 2005-07-23 17:51:50 PDT
If the user doesn't move the mouse but an object with either :hover, onmouseout, or onmouseover slides under it, none of the events are triggered. However, the events are trigged if objects slide under the mouse by a page scrolling action.
Attachments
onMouseOver causes page to scrollby() onMouseOut doesn't fire (2.65 KB, text/html)
2005-11-03 22:24 PST, Arvind Satyanarayan
no flags
Samrod
Comment 1 2005-07-23 18:15:31 PDT
*** Bug 4109 has been marked as a duplicate of this bug. ***
Samrod
Comment 2 2005-08-20 19:25:19 PDT
This behavior has been corrected in Gecko 1.8 as you can see in the test case. Not sure what influence this has on the bug's priority level for WebKit. But just thought I'd mention it.
Joost de Valk (AlthA)
Comment 3 2005-09-03 13:48:04 PDT
I don't know if this is intended behavior, but the testcase is good and i think it should work.
Samrod
Comment 4 2005-09-03 18:57:51 PDT
Are you saying it's been fixed in the release or an unreleased build of WebKit? Because it's sure not behaving properly in Safari 412.5, Apple's latest release.
Arvind Satyanarayan
Comment 5 2005-11-03 22:24:41 PST
Created attachment 4587 [details] onMouseOver causes page to scrollby() onMouseOut doesn't fire There are two arrows on either side of the screen that should scroll the images. What should happen is as you hover, the images should scroll, using scrollby() and setTimeout(), and when you move away from the arrows, they should stop scrolling, using clearTimeout(). This works fine in Firefox but not in Safari, I don't think onMouseOut is being fired.
Eric Seidel (no email)
Comment 6 2005-12-27 14:37:15 PST
This attached test case is not at all clear to me. http://samrod.com/random/handlevent.html works well though.
Joost de Valk (AlthA)
Comment 7 2005-12-27 22:12:53 PST
Put your mouse in the middle of one of the moving lines and don't move it, when it moves under your pointer, :hover will not be triggered, when you move over it yourself, it will. It's a good testcase, but i don't think this bug needs a lot of attention, since this is behavior that won't be noticed so often. Changing to p4 and trivial, until someone convinces me otherwise ;)
Samrod
Comment 8 2005-12-27 23:10:59 PST
It was a significant enough bug to have been corrected sometime between Firefox 1 and 1.5.
Joost de Valk (AlthA)
Comment 9 2006-01-16 05:23:06 PST
this happens in another fashion too, with links that aren't even moving: 1. pick any link that changes color when you move over it, 2. cmd-tab to another program so that it appears under your mouse pointer, 3. move your mouse out of the safari window, 4. tab back the link will still be coloured. To try this use http://dev.outbreak.nl/webkit/. Moving your mouse pointer into the right frame will also leave the link in the left frame colored when you switch back. Since this will happen more often, i'm upgrading priority and severity.
Johan Bergström
Comment 10 2006-01-27 12:55:41 PST
I can make similar stuff happen by; 1. Create an object with an onmouseover trigger 2. Enter that page with your point above the object, the object does not start with onmouseover 3. Move pount around inside that object, onmouseover still doesn't trigger. 4. Position your pointer outside the object, then move it above - onmouseover triggers. Firefox enters page with onmouseover triggered, so does Opera. Havent tried the behaviour on IE.
Alexey Proskuryakov
Comment 11 2006-03-20 13:00:10 PST
This can also be observed when manually running the tests landed with bug 3439 (fast/events/mouseover-mouseout.html). One needs to move the mouse quite slowly to see this, though. There are a lot of loosely related issues gathered there, but it's not at all obvious which of them are really the same. Anyway, I think they warrant a P2 together :)
Brett Wilson (Google)
Comment 12 2006-11-29 12:24:01 PST
See also bug 11705 which deals with the way these mouse events are dispatched when a DOM mutation occurs.
Julian Hollmann
Comment 13 2012-11-05 02:29:19 PST
This bug still exists, please see my testcase: http://jsfiddle.net/qLCY3/4/
Den
Comment 14 2013-02-21 00:56:08 PST
Same thing here. Put cursor into yellow circle and wait for the rectangle to come over the circle. :hover is not triggered until you move mouse. http://jsfiddle.net/CamaroSS/ZUw65/12/
Giulio Bonanome
Comment 15 2014-01-02 11:47:15 PST
Also :hover is not triggered if the page load the element under the mouse. It seems that :hover is triggered only on mousemove. See http://jsfiddle.net/4XRUf/1/ (from http://stackoverflow.com/questions/20886903/css-hover-works-only-when-mouse-moves)
Nicolás Castellanos
Comment 16 2018-09-11 13:19:17 PDT
Still happen on Safari
Brent Fulgham
Comment 17 2022-07-06 11:40:59 PDT
This is still happening in Safari 15.
Radar WebKit Bug Importer
Comment 18 2022-07-06 11:41:49 PDT
Note You need to log in before you can comment on or make changes to this bug.