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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

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

CSS

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

Q&A

2回答

2393閲覧

iOSでドロワーを開いた際にコンテンツ側のスクロールを無効にしたい。

aurized

総合スコア14

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

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

CSS

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

0グッド

1クリップ

投稿2018/04/02 04:55

iOS11や10などで、ドロワーを開いた際はコンテンツ側はドロワーの下に隠れるようになりますが、コンテンツ側もスクロールできてしまいます。
ドロワーを開いた際にコンテンツ上にバックドロップを敷くと、コンテンツのリンクなどは触れなくできますが、スクロールは相変わらず有効のままです。
ドロワー内でスクロールさせているときに、コンテンツ側がスクロールできてしまって、ドロワー内のスクロールが不安定になるときもあります。
ドロワーを開いた際に、 html { overflow:hidden; }を指定してやると、Androidではコンテンツ側のスクロールが無効になるのですが、iOSではそうはいかないようです。
そこでググってみたところ、以下の方法で試してみたのですが、相変わらずコンテンツ側はスクロールできしてしまいます…。

$(function () { var menuBtn = $('.menu-btn'); var rootHtml = $('html'); var flagBtn = false; menuBtn.on('click', function () { if (flagBtn) { menuBtn.attr('aria-expanded', 'false'); // ドロワーの開閉 rootHtml.on('touchmove.noScroll', function(e) {  e.preventDefault(); }); flagBtn = false; } else { menuBtn.attr('aria-expanded', 'true'); // ドロワーの開閉 rootHtml.off('.noScroll'); flagBtn = true; } }); });

touchmoveが関係しているようですが、どなたか解決法をご教授いただければと思います。
よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

自分はよくこの手法を用います

javascript

1$(window).on('touchmove', function(e) { 2 if($('.noScroll').length > 0){//クラスは適宜変更 3 e.preventDefault(); 4 } 5}); 6

参考URL
https://qiita.com/mimoe/items/f5f668cebb697d073553

投稿2018/04/02 05:11

kszk311

総合スコア3404

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

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

aurized

2018/04/03 05:32

なるほど、試してみました。 結果、状況は変わらなかったです…。 何か他に要因があるのかもしれません。 ご回答ありがとうございました。
guest

0

HTML

1<div id="contents"> 2 <p> 3 <button onclick="baa();">open</button>content</p> 4</div> 5<div id="foo" class="wrap"> 6 <div class="inner"> 7 drawer_content 8 <button onclick="baz();">close</button> 9 </div> 10</div>

CSS

1html, 2body { 3 margin : 0; 4} 5#contents { 6 border : 1px solid #cccccc; 7 box-sizing : border-box; 8 width: 100%; 9 overflow : auto; 10} 11#contents p { 12 padding: 200px 0 100vh; 13} 14#foo { 15 position: fixed; 16 display: block; 17 top:0; 18 left:0; 19 width: 100%; 20 min-height: 100%; 21 background-color: rgba(0,0,0,.5); 22 overflow: auto; 23} 24#foo:not(.active) { 25 display: none; 26} 27.inner { 28 position: absolute; 29 background-color: #ffffff; 30 margin: 1em; 31 border-radius: 10px; 32 padding: 100px 0 100vh; 33 width: 200px; 34}

js

1var qux,quux,quuux; 2$(window).on('load scroll',function(){ 3 qux = window.innerHeight; 4 quux = $(this).scrollTop(); 5 $('html').css('min-height',qux+'px'); 6}); 7function baa(){ // 開く 8 $('#foo').addClass('active'); 9 $('#contents').css('position','fixed'); 10 quuux = quux; 11 $('#contents').css('top','-'+quux+'px'); 12 } 13function baz(){ // 閉じる 14 $('#foo').removeClass('active'); 15 $('#contents').css('position',''); 16 $('#contents').css('top',''); 17 $(window).scrollTop(quuux); 18}

開閉方法や、構造を見直さないといけないかもしれませんがこんな感じでどうでしょう。

投稿2018/04/09 09:44

Atsushi_Okumura

総合スコア355

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問