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

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

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

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

Q&A

1回答

3215閲覧

スマートフォンのタップをjavascriptで検出する

lyzmfeqpxs54

総合スコア237

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

0グッド

0クリップ

投稿2019/01/24 01:50

いつもお世話になっております。

現在RailsでWEBページを作成しております。
ボタンを押すと画面全体に透過された黒い背景を全体にオーバーレイするようになっており、そのオーバーレイされた黒い背景をタップすると、その背景が消えるようにjavascriptに記載しております。

PCにてブラウザはgoogle chromeで動作させた場合には、動作するのですが、iPhoneにてブラウザはSafariを用いた場合には動作しません(タップしても黒い背景が消えない)。

コンソールで確認してみると、jQuery(document).click(function(event)が動作してないように思えるのですが、これはスマホのタッチには対応していないということでしょうか。

スマートフォンのタップにも対応できるような記載の方法をご教示いただけますと幸いです。
よろしくお願いいたします。

<style> .main { width: 100%; height: 100%; } .content-wrapper { width: 100%; height: auto; } .open-overlay { position: fixed; top: 0; left: 0; display: block; background: #FFFFFF; width: 100%; height: 0px; } .overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: #000000; display: none; opacity: 0.5; } .close-overlay { position: absolute; top: 0; right: 0; color: #FFFFFF; display: inline-block; } </style> <main id="jsi-main" class="main"> <a href="javascript:void(0);" id="jsi-open-overlay" class="open-overlay"></a> <div class="content-wrapper"> </div> <div id="jsi-overlay" class="overlay"> <a href="javascript:void(0);" id="jsi-close-overlay" class="close-overlay"></a> </div> </main> <script> jQuery(document).ready(function() { // オーバーレイの開閉処理 overlayOpener.addEventListener('click', function(){ // スクロール位置保持 scrollPosition = document.documentElement.scrollTop || document.body.scrollTop; overlay.style.display = 'block'; main.style.position = 'fixed'; main.style.top = '-' + scrollPosition + 'px'; current_scrollY = $( window ).scrollTop(); jQuery( 'body' ).css( { position: 'fixed', width: '100%', top: -1 * current_scrollY } ); }); // クリックを検出しdiv overlayの範囲の時オーバーレイを消す jQuery(document).click(function(event) { if(!$(event.target).closest('.overlay').length) { } else { overlay.style.display = 'none'; main.style.position = 'static'; main.style.top = 0; window.scrollTo(0, scrollPosition); } }); </script>

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

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

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

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

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

guest

回答1

0

clickではなくtouchの方になると思います。

投稿2019/01/24 01:55

m.ts10806

総合スコア80850

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問