[解決済み] タッチ対応ブラウザで、タッチによるホバーをシミュレートするには?
2022-08-06 16:36:15
質問内容
このようなHTMLで
<p>Some Text</p>
次に、こんな感じのCSSをいくつか。
p {
color:black;
}
p:hover {
color:red;
}
タッチ対応デバイスのロングタッチでホバーを再現するにはどうしたらよいでしょうか?マークアップを変更したり、JS を使用したりすることはできますが、これを行う簡単な方法を思いつきません。
どのように解決するのですか?
OK、解決しました! CSSを少し変更し、JSを追加する必要があります。
jQueryを使って簡単に。
$(document).ready(function() {
$('.hover').on('touchstart touchend', function(e) {
e.preventDefault();
$(this).toggleClass('hover_effect');
});
});
英語では、タッチを開始または終了するときに、クラスを回します。
hover_effect
をオンまたはオフにします。
次に、HTML で、これを動作させたいものに hover クラスを追加します。 CSS で、Hover クラスのインスタンスをすべて置き換えます。
element:hover {
rule:properties;
}
をもって
element:hover, element.hover_effect {
rule:properties;
}
さらに便利なことに、これをCSSにも追加してください。
.hover {
-webkit-user-select: none;
-webkit-touch-callout: none;
}
ブラウザが画像のコピー/保存/選択などを要求するのを止めるため。
簡単!
関連
-
[解決済み] 正規表現で変数を使うには?
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] チェックボックスとそのラベルをクロスブラウザーで一貫して揃える方法
-
[解決済み] スクロールバーを隠すが、スクロールはできる状態
-
[解決済み] divの内容を下に揃える方法
-
[解決済み] inline/inline-block要素間のスペースを削除するにはどうすればよいですか?
-
[解決済み】タッチデバイスで:hoverのCSSスタイルを削除/無視する方法
-
[解決済み] <Enter>でjQuery UIダイアログを送信する
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] <Enter>でjQuery UIダイアログを送信する
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] JavaScriptを使用してHTML要素に属性を追加/更新するには?
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] Reactメモを使うべきではない場合とは?
-
[解決済み] AJAX Mailchimp サインアップフォームの統合
-
[解決済み] Promise : then vs then + catch [重複].
-
[解決済み] 文字列とラベルのローカライズとグローバリゼーションのベストプラクティス【終了しました
-
[解決済み] Javascript の parseInt() で先頭のゼロを削除する。
-
[解決済み] JavaScriptの文字列プリミティブとStringオブジェクトの違いは何ですか?