jqueryを使用してメニューのdivにdisplay:noneのdisplay:blockを持つcssクラスを追加して、モバイルメニューを開閉しています。 jqueryコードには、メニューdivの外にクリックが登録されているときにメニューを閉じる部分があります。すべては、$("body").scrollTop(scrollpos)
を除き動作します。これは、scrollTop(0)
が終了してメニューが閉じた後に中断したところでユーザーをスクロールさせることになっていましたが、スクロールしてもスクロールしません。どんな助けもありがとう。ありがとうございました。モバイルメニューが閉じられた後にスクロール位置を復元する
編集:ここでは一例です:https://jsfiddle.net/mufwwudj/
$(function() {
var menutoggle = $(".menu-toggle");
var sidenav = $(".side-nav");
menutoggle.click(function() {
var scrollpos = $('body').scrollTop();
if (!$("body").hasClass("m-nav-open")) {
$("body").scrollTop(0).addClass("m-nav-open");
}
$(document).mouseup(function (e){
if (!sidenav.is(e.target) && sidenav.has(e.target).length === 0 && !menutoggle.is(e.target) && menutoggle.has(e.target).length === 0){
if ($("body").hasClass("m-nav-open")) {
$("body").scrollTop(scrollpos).removeClass("m-nav-open");
}
}
});
});
});
この問題が再現されたURLを共有できますか? jsfiddleが動作します。 – Vishwanath
コードは次のようなものです:jsfiddle.net/mufwwudjメニューを開き、メニューを開いて閉じる前に "ZZZZZ"にスクロールしてみてください。 ZZZZにスクロールする代わりに、上部には –
があります。どのブラウザでこれをチェックしていますか?あなたのコードは、最初の試みで私のために働く。 – Vishwanath