質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

648閲覧

スマホでactive擬似要素タッチだけで反応してしまう

nazo_o

総合スコア99

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

2クリップ

投稿2018/01/21 02:36

編集2018/01/22 02:32

スマホでactive擬似要素がタッチだけで反応してしまいます。

クリックしてページ遷移の時のみactive擬似要素を有効にすることはできないのでしょうか?

--追記--
タッチしても、長押した後に指を話した場合などにはページの遷移はしないと思います。

しかし、長押し中もbackground-color: #ccc;となってしまいます。

css

1ul li:active { 2 background-color: #ccc; 3}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hassy_ta

2018/01/21 05:31

タッチ=クリックしてページ遷移、ではないのですか?意図している挙動と問題となっている挙動、コードをもう少し具体的に書いていただきたいです。
nazo_o

2018/01/22 02:32

わかりにくく、申し訳ありません。追記致しました!
yoshinavi

2018/01/23 05:14

質問文の意味が理解出来てないかもですが、スマホでのタッチ操作には反応させないで、PC使用時にマウスでのクリックのみに、反応させたいとの事で良いのでしょうか?
nazo_o

2018/01/23 07:39

スマホでもPCのマウスでも、リンクを踏んで画面遷移する場合のみに反応させたいということです。スマホでは、タッチしても遷移しないように触れることもできると思います。その場合でもactiveですと、反応してしまうようです。わかりにくくて申し訳ありません。よろしくお願いいたします!
guest

回答2

0

ベストアンサー

しかし、長押し中もbackground-color: #ccc;となってしまいます。

押している間ということは :active なのだから当然の挙動だと思います。

タッチイベントが使えないデバイスを JavaScriptで判別して、そのデバイスでは :active を使い、タッチデバイスは touchstart イベントを JavaScriptで取得して短期間 :active と同じ効果を持つクラスを付けて外す処理をすれば「タッチした瞬間に効果が出た上で長押し中は途中で効果が切れる」ということは可能だと思います。(もしくはクリックイベントで効果をつけることはできますが、ページ移動を伴うなら大きな意味はないような気がします)

タッチと長押しは厳密には区別しにくいものなので、ある程度のところまでしか調整できないとは思います。

【touch, click, pointerの実装 - タッチイベントとマウスイベント | CodeGrid】
https://app.codegrid.net/entry/touch-mouse

投稿2018/01/23 13:26

編集2018/01/23 13:50
kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

個人的な見解と情報を知らないだけかもですが、質問者さんの望む動きは出来ないと思います。
スマホの場合、CSSの「:hover」が対応出来ないですし、「長押し」はPCマウスクリックが対応出来ませんので、現状仕様の動作だと思います。

投稿2018/01/23 12:06

yoshinavi

総合スコア3523

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問