我试图为一个网站创建一个导航菜单,它是大屏幕宽度上的普通水平导航栏,但当窗口宽度低于 980 像素时变成 jQuery 下拉菜单。
如果初始页面加载发生在窗口小于 980 像素的情况下,则菜单将按预期工作。但是,如果完全调整窗口大小,移动菜单会在最终完全打开之前多次打开和关闭。
该网站是http://host26.qnop.net/~fpsl/ - 如果您在台式计算机上全屏加载,将窗口调整为小宽度,然后单击右上角的绿色按钮,您将看到菜单的行为。
我的代码如下:
jQuery(document).ready(function($) {
if($(window).width() < 980) {
$("#mmenu").hide();
$(".mtoggle").click(function() {
$("#mmenu").slideToggle(500);
});
}
});
// check for window resize - show nav again for larger screens after hiding
$(window).resize(function() {
if($(window).width() < 980) {
$("#mmenu").hide();
$(".mtoggle").click(function() {
$("#mmenu").slideToggle(500);
});
}
if ($(window).width() > 980) {
$('#mmenu').show();
}
});
我是一个 jQuery 初学者,并假设我在代码的第二部分所做的事情是以某种方式创建了一个循环,但我不知道为什么或我能做些什么来纠正它 - 我已经尝试将声明更改为if/else 格式,但这没有区别。我也不明白为什么,如果发生意外循环,行为会在几次打开和关闭后停止,而不是无限继续。
任何帮助将非常感激!