ボタンがクリックされたときにメニューを表示/非表示にするこのコードがあります
$('#main-menu ul').slideToggle();
ブラウザウィンドウが767ピクセル未満の場合、メニューは非表示になるため、このボタンが表示され、オンとオフを切り替えることができます。これは、ウィンドウのサイズを再度大きくした場合に、スライドするとメニューが消えるという唯一の問題を除いて機能します。トグルは、何も表示しないように設定しています。これを修正するために、ブラウザのサイズが変更されたときにメニューを表示するコードを追加しました。これにより、ブラウザウィンドウが再び767ピクセル未満に縮小されたときに、デフォルトが非表示になる代わりに、新しいメニューが表示されます。その後、767px未満に拡大縮小したときにメニューを再び非表示にできますが、これにより、非表示になっているためメニューがフラッシュされます。
この場合、resize()がスケールアップしているかどうかを検出する方法を考えていました。この場合、スケールダウンするとhide()メニューが表示され、スケールアップするとshow()メニューが表示されます。
$('.menu-button').click(function() {
$('#main-menu ul').slideToggle();
});
$(window).resize(function(){
var w = $(window).width();
if(w > 767 && $('#main-menu ul').is(':hidden')) {
$('#main-menu ul').show();
}
});
$(window).resize(function(){
var w = $(window).width();
if(w < 767) {
$('#main-menu ul').hide();
}
});