javascript - 使用 CSS 和 Javascript 的响应式菜单栏

标签 javascript html css

我创建了一个响应式菜单栏,但遇到了一个问题,当我单击下拉按钮时,根本没有任何样式。

function myFunction(){
  var x = document.getElementById("myMenubar");
  if (x.className === "menubar"){
    x.className += "responsive";
  }else{
    x.className = "menubar";
  }
}
.menubar{
    	position:absolute;
    	width:600px;
    	margin-left:35%;
    	margin-top:4.5%;
    }
    
    .menubar ul{
    	overflow:hidden;
    } 
    
    .menubar ul li{
    	display:inline-block;
    	margin-right:15%;
    	list-style-type:none;
    }
    
    .menubar ul li a{
    	text-decoration:none;
    	color:white;
    }
    
    .menubar ul li.icon{display:none;}
    .menubar ul li a:hover{color:red;text-decoration:none;}
    .menubar ul li a.current{color:red;text-decoration:none;}
    
    @media screen and (max-width:765px){
    	.menubar{
    		width:130px;
    		margin-left:57%;
    	}
    	.menubar ul li:not(:first-child) {display:none;}
    	.menubar ul li.icon{
    		float:right;
    		display:inline-block;
    	}
    }
    
    @media screen and (max-width:765px){
    	.menubar.responsive ul{position:relative;}
    	.menubar.responsive ul li.icon{
    		position:absolute;
    		right:0;
    		top:0;
    	}
    	.menubar.responsive ul li{
    		float: none;
        	display: inline;
    	}
    	.menubar.responsive ul li a{
    		text-decoration:none;
    		color:white;
    		text-align:center;
    	}
    }
<div class="menubar" id="myMenubar">
    		<ul>
        		<li><a href="#" class="current">Home</a></li>
            	<li><a href="#">About</a></li>
            	<li><a href="#">Products</a></li>
            	<li><a href="#">Contact</a></li>
                <li class="icon"><a href="javascript:void(0);" onclick="myFunction()">&#9776;</a></li>
        	</ul>
    </div>

我做错了什么?我正在使用 http://www.w3schools.com/howto/howto_js_topnav.asp教程,我更改了一些代码以适合我的设计。我认为基地都是一样的

最佳答案

你会想要改变

x.className += "responsive";

x.className += " responsive";

此时,您的类变为menubarresponsive 而不是menubarresponsive

关于javascript - 使用 CSS 和 Javascript 的响应式菜单栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41629488/

相关文章:

html - 如何通过 xpath 或 css 选择器在 map 上定位元素

javascript - 尝试让我的 Discord 机器人重复生成答案而不循环消息,chooseanswer 未定义

javascript - 将 context.drawImage() 与 MediaStream 结合使用

javascript - Bootstrap 选项卡正在运行但数据未显示?

css - 基于容器大小的字体缩放

javascript - 我如何在 node.js 中显示渲染而不是 console.log

javascript - 带 Bootstrap 可排序表的区分大小写的 Tinysort

javascript - Coffeescript forEach 函数未定义

javascript - 边框布局代码中断,无法看到内容

javascript - 如何链接javascript函数在wordpress主导航菜单中有一个herf