【发布时间】:2017-10-28 19:16:57
【问题描述】:
我在这里遇到了一些问题。
如果我运行脚本,当窗口宽度超过 800 像素时,菜单会加载。然后我将窗口大小调整到 800px 以下,菜单被一个按钮换出。但是按钮不起作用。如果我将窗口大小调整到 800 像素以上,菜单会再次出现。
如果我运行脚本,当窗口宽度低于 800 像素时,按钮会起作用。但是然后我将窗口大小调整为 800 像素以上,菜单没有出现(除非我在调整大小之前将其保持打开状态),它应该出现。如果我再次将窗口大小调整到 800px 以下,该按钮仍然有效。
jQuery 部分应该只在窗口宽度低于 800px 时工作。
我不确定为什么这不起作用?
http://jsfiddle.net/y35axgpg/7/
更新
感谢您的帮助,显然我今天太累了,不应该在这个时间工作。你告诉我的我已经记在心里了,但需要朝正确的方向努力。
这是我想出的:https://jsfiddle.net/y35axgpg/15/
jQuery
if ($("#menu_button").css("display") == "inline-block") {
$("#menu_button").click(function() {
$("#main_menu").toggle("slide");
});
}
CSS
#main_menu {
border: 1px solid #000000;
width: 100%;
height: 35px;
display: block;
position: absolute;
top: 80px;
left: 0;
}
#menu_button {
display: none;
}
@media screen and (max-width: 800px) {
#main_menu {
display: none;
width: 200px;
height: 100%;
}
#menu_button {
display: inline-block;
}
}
【问题讨论】:
-
当然只有在屏幕尺寸小于 800 像素的情况下才有效,因为您的 if 检查
-
在
if条件之外声明您的.click()函数,然后在if条件中声明.trigger('click').click()函数。 例如: jsfiddle.net/y35axgpg/10
标签: jquery css media-queries