javascript - 导航栏行为怪异
问题描述
我在 JsFiddle 中设计的导航栏表现得很奇怪。有时汉堡菜单根本不起作用,有时它会打开和关闭菜单 5 次以上。任何帮助是极大的赞赏。
当我摆脱窗口宽度功能时它工作正常,但我不希望它在超过 768 像素时表现相同,因为在大屏幕尺寸下不再需要汉堡菜单。
我相信这与此有关:
$(function(){
var w = $(window).width();
$(window).resize(function() {
if(w <= 768){
$('.mobile-toggle').click(function(){
$('nav').slideToggle(500);
this.classList.toggle('change');
});
$('.m-link').click(function(){
$('.m-link').removeClass('active');
$(this).addClass('active');
$('nav').slideToggle(500);
$('.mobile-toggle').removeClass('change')
});
}else{
$('nav').show();
}
});
});
解决方案
似乎与分辨率及其变化方式有关。我的理解是,如果您更改分辨率,它就不是固定的。
.change .bar1 {
-webkit-transform: rotate(-45deg) translate(-8px, 6px);
transform: rotate(-45deg) translate(-8px, 6px);
background-color: red;
}
.change .bar2 {
opacity: 0;
}
.change .bar3 {
-webkit-transform: rotate(45deg) translate(-7.5px, -7px);
transform: rotate(45deg) translate(-7.5px, -7px);
background-color: red;
}
推荐阅读
- mysql - 管理应用程序生成文件的正确方法
- javascript - 如何从承诺结果中返回 React 元素?
- python - 使用 Python BeautifulSoup 抓取 NSE 期权价格,关于编码校正
- node.js - ctx 请求正文未使用 nodejs 定义
- java - 如何在 .java 文件中使用 build.gradle 中定义的变量
- java - 如何在片段中使用 setByte?
- c# - 绘制具有相同透明度的重叠线
- excel - 如何根据列的值从列表中获取动态 excel 工作表
- c++ - c ++ JsonCpp将带有转义引号的字符串解析为数组
- python - 我们可以使用字典元素来调用函数吗?或者只是使用字典来调用它?