当屏幕变得比680px小时,就会出现汉堡包菜单,只有左边的名称在点击时保留下来,这很好,就像在https://www.w3schools.com/howto/howto_js_topnav_responsive.asp上一样。
但是当汉堡包菜单被点击时,它就不起作用了。知道是怎么回事吗?
我的html和脚本;
function myFunction2() {
var x = document.getElementById("myTopnav");
if (x.className === "navbar") {
x.className += " responsive";
} else {
x.className = "navbar";
}
}
window.onscroll = function() { myFunction()};
var navbar = document.getElementsByClassName("navbar")[0];
var sticky = navbar.offsetTop;
function myFunction() {
if (window.pageYOffset >= sticky) {
navbar.classList.add("sticky")
} else {
navbar.classList.remove("sticky");
}
}body {
margin: 0;
}
.ad {
background-color: #fbf4e9;
text-align: center;
padding:5px;
}
.sticky {
position: fixed;
top: 0;
}
ul.navbar {
overflow:hidden;
list-style-type:none;
background-color:#f9eedd;
width:100%;
height:auto;
margin:0;
padding:0;
z-index:10;
}
ul.navbar li a{
display:block;
color:#8e8275;
text-decoration:none;
text-align: center;
padding: 13px 10px 13px 10px;
margin: 10px 7px 10px 7px
}
ul.navbar li.links{ float:left;}
ul.navbar li.icon { display: none;}
@media screen and (max-width: 680px) {
ul.navbar li:not(:first-child) {display: none;}
ul.navbar li.icon {
float: right;
display: inline-block;
}
}
@media screen and (max-width: 680px) {
ul.navbar.responsive {position: relative;}
ul.navbar.responsive li.icon {
position: absolute;
right: 0;
top: 0;
}
ul.navbar.responsive li {
float:none;
display:inline;
}
ul.navbar.responsive li a {
display: block;
text-align: left;
}
}<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<div class="ad">
<h2>Scroll Down</h2>
<p>Scroll down to see the sticky effect.</p>
</div>
<div> <ul class="navbar" id=myTopnav>
<li class="links"><a href=#home>Home</a></li>
<li class="links"><a></a></li>
<li class="links"><a href=#talen>Talen</a></li>
<li class="links"><a href=#genres>Genres</a></li>
<li class="links"><a href=#stijlen>Stijlen</a></li>
<li class=icon><a href="javascript:void(0);" onclick="myFunction()">
<i class="fa fa-bars"></i>
</a></li>
</ul> </div>
<p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p>
发布于 2019-12-29 12:03:14
问题是您已经定义了两次myFunction()。所以第二种是超越第一种。
试着给第二个名字取一个不同的名字,比如myFunction2(),它应该开始工作了。
编辑
我将脚本更改为:
function myFunction() {
var x = document.getElementById("myTopnav");
if (x.className === "navbar") {
x.className += " responsive";
} else {
x.className = "navbar";
}
}
window.onscroll = function() { myFunction2()};
var navbar = document.getElementsByClassName("navbar")[0];
var sticky = navbar.offsetTop;
function myFunction2() {
if (window.pageYOffset >= sticky) {
navbar.classList.add("sticky")
} else {
navbar.classList.remove("sticky");
}
}试试看:
function myFunction() {
var x = document.getElementById("myTopnav");
if (x.className === "navbar") {
x.className += " responsive";
} else {
x.className = "navbar";
}
}
window.onscroll = function() { myFunction2()};
var navbar = document.getElementsByClassName("navbar")[0];
var sticky = navbar.offsetTop;
function myFunction2() {
if (window.pageYOffset >= sticky) {
navbar.classList.add("sticky")
} else {
navbar.classList.remove("sticky");
}
}body {
margin: 0;
}
.ad {
background-color: #fbf4e9;
text-align: center;
padding:5px;
}
.sticky {
position: fixed;
top: 0;
}
ul.navbar {
overflow:hidden;
list-style-type:none;
background-color:#f9eedd;
width:100%;
height:auto;
margin:0;
padding:0;
z-index:10;
}
ul.navbar li a{
display:block;
color:#8e8275;
text-decoration:none;
text-align: center;
padding: 13px 10px 13px 10px;
margin: 10px 7px 10px 7px
}
ul.navbar li.links{ float:left;}
ul.navbar li.icon { display: none;}
@media screen and (max-width: 680px) {
ul.navbar li:not(:first-child) {display: none;}
ul.navbar li.icon {
float: right;
display: inline-block;
}
}
@media screen and (max-width: 680px) {
ul.navbar.responsive {position: relative;}
ul.navbar.responsive li.icon {
position: absolute;
right: 0;
top: 0;
}
ul.navbar.responsive li {
float:none;
display:inline;
}
ul.navbar.responsive li a {
display: block;
text-align: left;
}
}<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<div class="ad">
<h2>Scroll Down</h2>
<p>Scroll down to see the sticky effect.</p>
</div>
<div> <ul class="navbar" id=myTopnav>
<li class="links"><a href=#home>Home</a></li>
<li class="links"><a></a></li>
<li class="links"><a href=#talen>Talen</a></li>
<li class="links"><a href=#genres>Genres</a></li>
<li class="links"><a href=#stijlen>Stijlen</a></li>
<li class=icon><a href="javascript:void(0);" onclick="myFunction()">
<i class="fa fa-bars"></i>
</a></li>
</ul> </div>
<p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p><p>Some text to enable scrolling..</p>
https://stackoverflow.com/questions/59519141
复制相似问题