Heim  >  Artikel  >  Web-Frontend  >  Wie können wir Sticky-Hover-Effekte auf Tasten für Touch-Geräte beseitigen?

Wie können wir Sticky-Hover-Effekte auf Tasten für Touch-Geräte beseitigen?

Susan Sarandon
Susan SarandonOriginal
2024-11-10 13:44:02593Durchsuche

How Can We Eliminate Sticky Hover Effects on Buttons for Touch Devices?

Verhindern von Sticky-Hover-Effekten für Tasten auf Touch-Geräten

Der anhaltende Hover-Zustand auf Tasten auf Touch-Geräten kann lästig sein. Um dieses Problem anzugehen, wurden verschiedene Lösungen vorgeschlagen, von denen jedoch keine völlig zufriedenstellend zu sein scheint. Ein Ansatz besteht darin, am Touch-Ende eine „No-Hover“-Klasse hinzuzufügen, was sich jedoch negativ auf die Leistung auswirkt und Hybridgeräte nicht berücksichtigt. Eine andere Möglichkeit besteht darin, dem Dokument eine „Touch“-Klasse hinzuzufügen, aber auch dies schlägt auf Geräten mit Touch- und Mausfunktionen fehl.

Die ideale Lösung: CSS Media Queries Level 4

Mit der Einführung von CSS Media Queries Level 4 ist eine verfeinerte Lösung entstanden:

@media (hover: hover) {
    button:hover {
        background-color: blue;
    }
}

Diese Medienabfrage zielt speziell auf Browser mit echter/nicht emulierter Hover-Unterstützung ab (z. B. Geräte mit Maus). -ähnliche Eingabemechanismen). Schaltflächen in solchen Browsern zeigen den blauen Hover-Effekt an.

Polyfill für ältere Browser

Für Browser ohne diese Funktion gibt es ein JavaScript-Polyfill, das echte Hover-Unterstützung simulieren kann:

html.my-true-hover button:hover {
    background-color: blue;
}

Das Polyfill erkennt Hovering-Fähigkeiten und schaltet die „my-true-hover“-Klasse entsprechend um:

$(document).on('mq4hsChange', function (e) {
    $(document.documentElement).toggleClass('my-true-hover', e.trueHover);
});

Diese Kombination aus CSS und JavaScript stellt sicher, dass Hover-Effekte auf beiden einwandfrei funktionieren moderne und ältere Touch-Geräte.

Das obige ist der detaillierte Inhalt vonWie können wir Sticky-Hover-Effekte auf Tasten für Touch-Geräte beseitigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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