BLOG

ブログ

2019.09.04|技術ブログ

スマホでもhoverを対応させる方法

ここ数年の間にスマートフォンの普及は目覚ましく、今やWEBサイトの閲覧の80%はスマホからのアクセスだそうです。
サイト制作もモバイルファーストな構造になり、モバイル専用サイトを作るのではなく、
「レスポンシブWebデザイン」がメジャーです。

「レスポンシブ対応」とはPC、スマホとも同じページ(同じHTMLファイル)にアクセスしても、
デバイス(ディスプレイサイズ)ごとに異なるCSS(WEBコンテンツスタイル)を適用させて、

色々なデバイス(画面幅)に合ったレイアウトで表示します。

 

そんな時、パソコン画面でよく使用するCSSスタイルでhover(→マウスオーバー。マウスがあるコンテンツ(ボタンでメニューなど)
に乗ったときに、ふわっと色が変わったり、子メニューが出てきたりする)を使っている箇所が、
スマホ画面ではマウスがないのでhoverが効かず、タップしても変化が起きない!という問題があります。

そのため、スマホ用に別のメニューを用意したり、色変化は諦めたり…だったのですが、hover要素のスマホ対応方法がありました。

 

【ontouchstart属性を追加する】

ontouchstart属性なるものがあることを知りました。
:hover擬似クラスを適用させたい要素にontouchstart属性を追加するだけで、指がhover要素に触れるとイベントが発生します。

PCのイベントでいうと
マウスポタンが押下された際に発生するイベントのonmousedown属性、
キーが押下された際に発生するイベントのonkeydown属性
と同じイベントのようです。

ontouchstart属性は、iOSやandroid OS上で動作するスマホやタブレット端末で実装されているそうです。

また、色々な箇所にhoverクラスがある場合は全体を囲ったブロック要素に記述しておけば、対応領域はそのブロック全てになります。
なお、ontouchstart属性の要素は空指定でいいみたいです。

例:
<div class=”contents” ontouchstart=””>

sampleページを作成してみましたので、PCとスマホでアクセスして確認してみてください。

ontouchstartサンプルページ

CONTACT

ご質問・ご相談は
お気軽にお問い合わせください。

受付時間:平日 9:30〜18:30(土日祝除く)
※メールは24時間受け付けております。

OSAKA Office大阪本社

〒541-0054 
大阪市中央区南本町1-8-14 
JRE堺筋本町ビル9階
詳細はこちら

TOKYO Office東京支社

〒103-0027 
東京都中央区日本橋2丁目2−3 
RISHEビル4F
詳細はこちら