Ich muss einen Weg finden, um CSS: Hover-Eigenschaften mit JavaScript zu ändern.
Angenommen, ich habe diesen HTML-Code:
<table>
<tr>
<td>Hover 1</td>
<td>Hover 2</td>
</tr>
</table>
Und der folgende CSS-Code:
table td:hover {
background:#ff0000;
}
Ich möchte JavaScript verwenden, um die <td> -Hover-Eigenschaften beispielsweise in den Hintergrund zu ändern: # 00ff00. Ich weiß, dass ich mit JavaScript auf die Style-Hintergrundeigenschaft zugreifen kann:
document.getElementsByTagName("td").style.background="#00ff00";
Aber ich kenne kein JavaScript-Äquivalent für: hover. Wie ändere ich den Hintergrund dieser <td>: Hover mithilfe von JavaScript?
Ihre Hilfe wird gerne in Anspruch genommen!
quelle
style
Variable in kennebecs Antwort ein neues Element ist, das im Code erstellt wurde und nicht auf ein vorhandenes<style>
Tag im HTML verweist .style
Element bereits ein Stylesheet hat oder nicht?Sie können den tatsächlichen
:hover
Selektor nicht über Javascript ändern . Sie können jedochmouseenter
den Stil ändern und wiedermouseleave
aktivieren (danke, @Bryan).quelle
mouseleave
müssen, um die Effekte umzukehren.Sie können die Klasse Ihres Objekts ändern und zwei Klassen mit unterschiedlichen Hover-Eigenschaften definieren. Beispielsweise:
Und das fand ich unter: Ändern Sie die Klasse eines Elements mit JavaScript
quelle
Wenn es Ihrem Zweck entspricht, können Sie die Hover-Funktionalität hinzufügen, ohne CSS und das
onmouseover
Ereignis in Javascript zu verwendenHier ist ein Code-Snippet
quelle
Es tut uns leid, diese Seite 7 Jahre zu spät zu finden, aber hier ist eine viel einfachere Möglichkeit, dieses Problem zu lösen (Hover-Stile willkürlich ändern):
HTML:
CSS:
JavaScript:
quelle
Ich würde empfehlen, alle
:hover
Eigenschaften zu ersetzen ,:active
wenn Sie feststellen, dass das Gerät Touch unterstützt. Rufen Sie diese Funktion einfach auf, wenn Sie dies tuntouch()
quelle
Ziemlich alte Frage, also dachte ich mir, ich werde eine modernere Antwort hinzufügen. Nachdem CSS-Variablen weitgehend unterstützt werden, können sie verwendet werden, um dies zu erreichen, ohne dass JS-Ereignisse oder erforderlich sind
!important
.Am Beispiel des OP:
Wir können dies jetzt im CSS tun:
Und fügen Sie den Schwebezustand mit Javascript wie folgt hinzu:
Hier ist ein Arbeitsbeispiel https://codepen.io/ybentz/pen/RwPoeqb
quelle
Ich hatte dieses Bedürfnis einmal und erstellte eine kleine Bibliothek für, die die CSS-Dokumente verwaltet
https://github.com/terotests/css
Damit können Sie angeben
Es verwendet die oben genannten Techniken und versucht auch, die browserübergreifenden Probleme zu beheben. Wenn aus irgendeinem Grund ein alter Browser wie IE9 vorhanden ist, wird die Anzahl der STYLE-Tags begrenzt, da der ältere IE-Browser diese seltsame Begrenzung für die Anzahl der auf der Seite verfügbaren STYLE-Tags hatte.
Außerdem wird der Datenverkehr auf die Tags begrenzt, indem die Tags nur regelmäßig aktualisiert werden. Es gibt auch eine eingeschränkte Unterstützung für das Erstellen von Animationsklassen.
quelle
Deklarieren Sie eine globale Variable:
Wählen
<td>
Sie dann Ihr Guiena-Schwein ausid
, wenn Sie alle ändern möchtenMachen Sie eine Funktion ausgelöst werden und eine Schleife alle gewünschten Änderungen
td
‚sGehen Sie zu Ihrem CSS-Blatt:
Und das ist es, mit diesem können Sie alle Ihre
<td>
Tagsbackground-color: #00ff00;
beim Schweben bewegen, indem Sie die CSS-Eigenschaft direkt ändern (zwischen CSS-Klassen wechseln).quelle
Dies fügt der Zelle nicht das CSS hinzu, sondern bewirkt den gleichen Effekt. Diese Version liefert zwar das gleiche Ergebnis wie andere oben, ist aber für mich etwas intuitiver, aber ich bin ein Anfänger. Nehmen Sie sie also für das, was es wert ist:
Dazu muss die Klasse für jede der Zellen, die Sie hervorheben möchten, auf "hoverCell" gesetzt werden.
quelle
Sie können eine CSS-Variable erstellen und diese dann in JS ändern.
Um es in JS zu ändern, habe ich diese praktischen kleinen Funktionen erstellt:
und
Sie können so viele CSS-Variablen erstellen, wie Sie möchten, und ich habe keine Fehler in den Funktionen gefunden. Danach müssen Sie es nur noch in Ihr CSS einbetten:
Und dann bam, eine Lösung, die nur einige CSS- und 2 JS-Funktionen erfordert!
quelle
Wenn Sie leichtes HTML ux lang verwenden, überprüfen Sie hier ein Beispiel , schreiben Sie:
Der obige Code führt das Metatag css: hover aus.
quelle