Wie Entferne ich den :hover?
Ich habe ein kleines problem mit einem script.
Ich möchte eine Standard-Aktion auf :hover
für clients mit deaktiviertem Javascript, sondern auch für diejenigen mit Javascript aktiviert ist möchte ich eine weitere Aktion (eigentlich... gleiche Aktion, aber ich wollen, fügen Sie eine kleine transition-Effekt).
So... Wie kann ich dies tun? Ich bin mit jQuery.
InformationsquelleAutor der Frage Ionuț Staicu | 2009-01-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gelten zwei Klassen der relvant element. enthält das hover-Verhalten, und enthält alle anderen styling.
Können Sie dann verwenden Sie die jquery
Methode zu entfernen, die Klasse mit den hover-Verhalten und dann anwenden, was Sie wollen mit
InformationsquelleAutor der Antwort benlumley
Wie über das setzen der
:hover
fallen-zurück in ein stylesheet wird nur geladen, wenn javascript deaktiviert ist?InformationsquelleAutor der Antwort foxy
Hier ist eine Lösung ohne hack Klassen:
CSS:
jQuery (verwendet jQueryUI zu animieren Farbe):
demo
InformationsquelleAutor der Antwort kingjeffrey
Ich denke, der beste Ansatz wäre, zu verlassen, die
:hover
Verhalten als fall-back für nicht-javascript-Benutzer und verwenden Sie dann JQuery zu erstellen, mouseover-und mouseout-Ereignis-Handler zu erstellen, der einen anderen Effekt für javascript-fähigen Benutzer.JQuery Javascript-Bibliothek - Events/mouseover
InformationsquelleAutor der Antwort Andrew Hare
Es ist eine sehr alte Frage, aber ich fühle den Drang, zu sagen, dass modernizr bietet eine sehr gute Möglichkeit, um die Umsetzung dieser Art von fallbacks.
Gehören einfach modernizr im head-und Sie können diese:
Auf der anderen Seite, wenn Sie dies tun wollen, den anderen Weg, und nur setzen Sie css, wenn js vorhanden ist
Es ist mehr oder weniger die gleiche Lösung wie das hinzufügen eines hover-tag für das markup, aber ein wenig mehr robust.
InformationsquelleAutor der Antwort SoonDead
ICH GEFUNDEN HABEN, IHRE LÖSUNG
grundsätzlich beginnen Sie, indem Sie neu definieren, was du getan hast mit der css-hover.
(natürlich würden Sie dies tun, indem Sie dynamisch ziehen die Informationen aus dem style)
dann tun Sie, was Sie wollen in jquery mouseover - /mouseout-events
dies ermöglicht Ihnen, halten die :hover-Ereignis in Ihrem css denn jquery ist die Bindung Ihres ursprünglichen Stile, um das element. Im wesentlichen deaktivieren die :hover-event.
wenn Ihr css ist:
Ihre jquery wäre so etwas wie:
InformationsquelleAutor der Antwort Chico Web Design
Kann man Global aktivieren Verhalten über das gesamte Dokument durch die Verwendung einer einzigen css-Regel, und deaktivieren Sie dann, dass in der Regel eine Anweisung in javascript, die während der Installation der neuen event-handler.
Fügen Sie eine Klasse, um Ihren html-body-tag:
Standardverhalten in Ihrem css, sagen wir mal Fett links auf hover:
- Und in deiner js, wenn Sie ausgeführt wird, entfernen Sie das standardmäßige Verhalten und tun etwas anderes:
InformationsquelleAutor der Antwort aceofspades
Könnten Sie Streifen alle :hover-style-Regeln aus dem Dokument.styleSheets.
Gehen Sie einfach durch alle CSS-styles mit JavaScript und entfernen Sie alle Regeln, die enthalten ":hover" im Selektor. Ich benutze diese Methode, wenn ich brauche zu entfernen, die :hover-styles von bootstrap 2.
Ich habe Untermalung für die Iteration von arrays, aber man könnte schreiben, diese mit reinem js-Schleife:
InformationsquelleAutor der Antwort Mikael Lepistö
}
InformationsquelleAutor der Antwort Artemiy StagnantIce Alexeew