2010-09-06 4 views
0

Je suis curieux de savoir s'il est possible de déclencher un événement onmouseover lorsque la page est chargée avec la souris sur l'image en question? Je ne veux rien bouger de la souris (donc utiliser mousemove ne résoudra rien).La souris positionnée sur l'image lorsque la page est chargée ne déclenche pas l'événement onmouseover

J'ai vérifié ces messages précédents:

jQuery trigger mouseover function when page loads with the mouse over the element

et

Detect if mouse is over an element when page loads with Javascript

La première suggère mousemove qui nécessite le déplacement de la souris. Une autre réponse suggère l'utilisation de JQuery et .load() et .hover() qui utilisent essentiellement les événements mouseover et mouseout en Javascript, n'apportant donc rien de nouveau à la question (rien ne peut être fait dans JQuery qui ne peut pas être fait en Javascript simple non?)

le second suggère après, en dehors de mousemove, une fonction via CSS display propriété fait l'image disparaît après son chargement, puis réapparaît au même endroit, selon ainsi à l'affiche, ce qui rend le feu de l'événement mouseover. Cependant, il ne se déclenche pas quand je le fais de cette façon, ni dans la version actuelle de Firefox (3.6) ni dans la version 3.0 utilisée par le testeur (je ne sais pas s'il l'a vraiment fait fonctionner ou pas mais je crois Je l'ai bien compris). Le dernier poster sur le second thread suggère qu'il ne peut pas être fait parce que la page a besoin de savoir où le curseur est positionné et il ne peut pas le faire si vous ne déplacez pas la souris, c'est peut-être la vraie réponse?


Dans Explorer 8, cette chose est fixe en quelque sorte parce que par exemple un bouton NEXT continue à montrer son onmouseover image au lieu de passer à son « off » -bouton lorsque les rechargements de page et la souris repose sur la même image sans bouger. Cependant, aucun des autres navigateurs n'a cette fonctionnalité.

Je réalise que ce problème peut facilement être résolu en utilisant Javascript et ne recharger pas toute la page, gardant ainsi l'image onmouseover sur le bouton étant sur une partie de la page qui n'est pas renouvelée, mais je suis curieux comme je l'ai dit à propos de savoir si c'est possible sans cela. De plus, le mélange avec focus et le paramétrage de l'attribut onfocus dans l'étiquette d'ancrage entourant l'image peuvent également corriger des choses mais pas entièrement puisque le risque serait maintenant que le curseur de la souris soit repositionné pendant le chargement de la nouvelle page et ensuite Garder la mise au point via l'étiquette d'ancrage sur le bouton pressé pour qu'il utilise son bouton "on" serait une mauvaise idée.


Alors, est-il un moyen de détecter si la souris est positionné sur une image lorsque la page se charge sans la souris en mouvement même un pixel ou est-ce pas possible?

Répondre

0

Je ne crois pas que ce soit possible, puisque le navigateur détermine l'événement mouseover basé sur les mousemoves. La pseudo-classe CSS :hover ne se déclenche pas non plus dans mes tests.

+0

Je crois que vous avez raison ... serait bien d'obtenir ce confirmé par quelques autres et une brève explication sur la façon dont ils ont réussi à avoir cette fonctionnalité dans l'Explorateur 8 :) Merci! –

Questions connexes