【发布时间】:2018-10-24 14:38:53
【问题描述】:
当我的网站窗口很小(移动视图)并且用户点击汉堡菜单时,我使用 jquery 淡入导航菜单。当我在导航之外单击时,它会淡出导航菜单。
如果我将窗口大小调整为更大,我的导航栏应该自行调整大小,但它甚至不存在。我猜是因为我用 jquery 淡化了它。
我尝试让脚本仅在窗口大小小于特定大小时运行,但当我调整大小时导航菜单仍然消失。
我该如何解决这个问题?
jquery 脚本
//fades in
$("#mobileNav").click(function(){
$(".nav").fadeIn("slow");
event.stopPropagation();
})
// fade out on click outside of navigation menu
window.onclick = function(event) {
if (!event.target.matches('.nav')) {
isSmallWindow = $(window).width() < 600;
if(isSmallWindow) {
$(".nav").fadeOut("slow");
}
}
$(window).resize(function() {
isBigWindow = $(window).width() > 600;
if(isBigWindow) {
$(".nav").show();
}
});
html
<div id="mobileNav" class="mobileNavContainer floatLeft">
<div class="bar1"></div>
<div class="bar2"></div>
<div class="bar3"></div>
</div>
<div id="para1" class="floatLeft"></div>
</div>
<!---------- NAVIGATION ---------->
<div class="nav">
<!-- link icons have custom css - icon -->
<a href="index.php?page=clients" title="Clients">
<span class="navIcon">
<i class="fa fa-users icon" aria-hidden="true"></i>
</span>
<span class="navText">
Clients
</span>
</a>
<a href="index.php?page=invoices" title="Invoices">
<span class="navIcon">
<i class="fas fa-file-invoice icon"></i>
</span>
<span class="navText">
Invoices
</span>
</a>
</div>
【问题讨论】:
-
调整页面大小然后重新加载时是否也会出现这种情况?
-
您需要在 windows resize 事件处理程序上添加相同的功能。点赞
window.resize = funciton(event) {也可以尝试分享你的代码的HTML,在这里加个sn-p,方便别人帮忙 -
因此,要么在调整大小超过 X 大小时将其淡入,要么添加样式以强制其可见。
-
你可以通过 CSS 媒体查询和过渡更可靠地做到这一点
-
@ADyson 问题是元素将通过样式隐藏,因此只有绕过它的方法很重要......
标签: javascript jquery