ホームページ > ウェブフロントエンド > CSSチュートリアル > タッチ対応環境でボタン上のスティッキーホバー効果を排除するにはどうすればよいですか?

タッチ対応環境でボタン上のスティッキーホバー効果を排除するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-24 20:11:44
オリジナル
653 人が閲覧しました

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

タッチ対応環境でボタン上のスティッキー ホバー エフェクトを排除する

ボタンにホバー エフェクトが蔓延すると、タッチ時に問題が発生しますデバイス。ホバー状態は色の変化で示されることが多く、ボタンをタップした後も持続する傾向があり、その結果「粘着性」効果が生じます。この動作は望ましくない可能性があり、ユーザー エクスペリエンスを妨げます。

この問題に対処するために、さまざまな程度の成功を収めた多数のアプローチが提案されています。

  • 「no-タッチエンドの hover" クラス: このメソッドはタップ後のホバー効果を効果的に防止しますが、パフォーマンスに悪影響を及ぼし、両方のタッチスクリーンを備えたデバイスの処理に失敗する可能性があります。
  • documentElement に「タッチ」クラスを追加する: このアプローチでは、タッチ入力とマウス入力の両方をサポートするデバイスでも、2 つの入力を区別できないため、課題が生じます。

この問題に対する理想的な解決策は、ボタンに触れた直後にホバー状態を削除することです。残念ながら、この機能はブラウザーではネイティブにサポートされていません。別の要素にフォーカスしようとしたり、別の要素を手動でタップしようとしても、期待した結果が得られません。

完璧な解決策:

CSS メディア クエリ レベル 4 の実装により、決定的な結果が得られます。この問題の解決策。次のコードを使用します:

@media (hover: hover) {
    button:hover {
        background-color: blue;
    }
}
ログイン後にコピー

真のホバーリング (マウス入力など) をサポートするブラウザーは、ホバー イベントが本物である場合にのみホバー スタイルを適用します。

サポートしていないブラウザーの場合この機能をサポートするには、動作をエミュレートできるポリフィルが利用可能です。このポリフィルを使用すると、次の CSS を使用できるようになります。

html.my-true-hover button:hover {
    background-color: blue;
}
ログイン後にコピー

最後に、ポリフィルの JavaScript を使用して、デバイスのホバー サポートに基づいて「my-true-hover」クラスの存在を動的に切り替えることができます。このアプローチは、実際のホバー検出の動作を効果的に再現し、タッチ デバイスでのスティッキー ホバー エフェクトの問題に対する完璧な解決策を提供します。

以上がタッチ対応環境でボタン上のスティッキーホバー効果を排除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート