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
が関係しているようですが、どなたか解決法をご教授いただければと思います。
よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/03 05:32