Heim > Web-Frontend > CSS-Tutorial > Hauptteil

Wie können wir Sticky-Hover-Effekte auf Schaltflächen in berührungsempfindlichen Umgebungen beseitigen?

Patricia Arquette
Freigeben: 2024-11-24 20:11:44
Original
630 Leute haben es durchsucht

How Can We Eliminate Sticky Hover Effects on Buttons in Touch-Enabled Environments?

Beseitigen von Sticky-Hover-Effekten auf Schaltflächen in Touch-fähigen Umgebungen

Die Verbreitung von Hover-Effekten auf Schaltflächen führt zu einem Problem, wenn es um Berührungen geht Geräte. Der Schwebezustand, der oft durch einen Farbwechsel angezeigt wird, bleibt tendenziell auch nach dem Tippen auf die Schaltfläche bestehen, was zu einem „klebrigen“ Effekt führt. Dieses Verhalten kann unerwünscht sein und die Benutzererfahrung beeinträchtigen.

Um dieses Problem anzugehen, wurden zahlreiche Ansätze mit unterschiedlichem Erfolg vorgeschlagen:

  • Hinzufügen eines „Nein- Hover“-Klasse auf Touchend: Diese Methode verhindert zwar effektiv den Hover-Effekt nach dem Tippen, kann sich jedoch negativ auf die Leistung auswirken und funktioniert nicht mit Geräten mit Touchscreen und Maus Eingabe.
  • Hinzufügen einer „Touch“-Klasse zum documentElement: Dieser Ansatz stellt auch Herausforderungen bei Geräten dar, die sowohl Touch- als auch Mauseingaben unterstützen, da er nicht zwischen den beiden Eingaben unterscheiden kann.

Die ideale Lösung für dieses Problem wäre, den Schwebezustand sofort nach dem Berühren der Schaltfläche zu entfernen. Leider wird diese Funktionalität von Browsern nicht nativ unterstützt. Der Versuch, ein anderes Element zu fokussieren oder manuell auf ein anderes Element zu tippen, führt nicht zum gewünschten Ergebnis.

Eine perfekte Lösung:

Die Implementierung von CSS Media Queries Level 4 bietet eine endgültige Lösung Lösung für dieses Problem. Verwenden Sie den folgenden Code:

@media (hover: hover) {
    button:hover {
        background-color: blue;
    }
}
Nach dem Login kopieren

Browser, die echtes Hovering unterstützen (z. B. mit Mauseingabe), wenden den Hover-Stil nur an, wenn das Hover-Ereignis echt ist.

Für Browser, die dies nicht tun Wenn Sie diese Funktion unterstützen, ist eine Polyfüllung verfügbar, mit der Sie das Verhalten emulieren können. Mit dieser Polyfüllung können Sie das folgende CSS verwenden:

html.my-true-hover button:hover {
    background-color: blue;
}
Nach dem Login kopieren

Schließlich können Sie mit dem JavaScript der Polyfüllung das Vorhandensein der Klasse „my-true-hover“ basierend auf der Hover-Unterstützung des Geräts dynamisch umschalten. Dieser Ansatz reproduziert effektiv das Verhalten einer echten Hover-Erkennung und bietet eine perfekte Lösung für das Problem des Sticky-Hover-Effekts auf Touch-Geräten.

Das obige ist der detaillierte Inhalt vonWie können wir Sticky-Hover-Effekte auf Schaltflächen in berührungsempfindlichen Umgebungen beseitigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage