スマホでhoverが効かない!タップでも対応させたい!

2021-02-14

スマホでもhoverでつけた動きを反映させたい

ontouchstart属性を追加する場合

ontouchstart属性を追加します。要素は特に入れなくてOKです。疑似クラス「:hover」を設定した部分がスマホで反応してくれるようになります。

ontouchstart=""
(例)
<p class="sp-hover" ontouchstart=""></p>

<div id="contentInner" ontouchstart=""></div>

 

JQueryを追加する場合

bodyの閉じタグの前などに入れます。
タップしたときにcssで.hoverに設定したスタイルになります。

$('a')
  .bind('touchstart', function(){
    $(this).addClass('hover');
}).bind('touchend', function(){
    $(this).removeClass('hover');
});

 

touchstart:タップで始まるイベント
touchend:指が離れた時のイベント
addClass():要素にクラスを追加
removeClass:要素からクラスを削除

参考にさせていただきました。ありがとうございました!