gpt4 book ai didi

javascript - 滚动事件上的 jQuery .addClass() 不起作用

转载 作者:行者123 更新时间:2023-11-28 05:15:33 25 4
gpt4 key购买 nike

我是 jQuery 的新手,我在滚动事件中遇到了 addClass() 的问题。这是我的代码:

HTML:

<div class="sidebar">
<ul>
<li id="pop">Home</li>
<li>Programs</li>
<li>Replay</li>
</ul>
</div>

CSS:

.sidebar div {
width: 150px;
height: 250px;
float: right;
position: fixed;
z-index: 1;
}

.sidebar ul {
list-style-type: none;
padding-left: 0;
position: fixed;
}

.sidebar li {
background: gray;
color: white;
text-transform: uppercase;
font-size: 13px;
width: 80px;
}

.active {
width: 140px;
background: orange;
font-size: 25px;
}

jQuery:

$(document).ready(function() {
$(window).scroll(function() {

var st = $(this).scrollTop();
if( st > 500 ) {
$("#pop").addClass("active");
} else {
$("#pop").removeClass("active");
}
});
});

我也尝试过使用 toggleClass() 但没有成功。我不知道是什么阻止了它的工作。

预先感谢您的帮助。

最佳答案

像这样改变:

样式:

删除这个:

 .sidebar li {
background: gray;
color: white;
text-transform: uppercase;
font-size: 13px;
width: 80px;
}

并添加:

.normal {
font-size: 13px;
background: gray;
color: white;
text-transform: uppercase;
width: 80px;
}

.active {
width: 140px;
background-color:orange;
font-size: 25px;
text-transform: uppercase;
color: white;
}

HTML :

normal 类添加到 lis

<ul>
<li id="pop" class="normal">Home</li>
<li class="normal">Programs</li>
<li class="normal">Replay</li>
</ul>

Jquery :

$(document).ready(function(){

$(window).on("scroll",function() {

if($(this).scrollTop() > 500)

$("#pop").removeClass("normal").addClass("active");

else

$("#pop").removeClass("active").addClass("normal");


})
})

最终代码:

<html>
<title>This is test</title>
<head>
<style>
body {
height: 2500px;
}
.sidebar div {
width: 150px;
height: 250px;
float: right;
position: fixed;
z-index: 1;
}

.sidebar ul {
list-style-type: none;
padding-left: 0;
position: fixed;
}

.normal {
font-size: 13px;
background: gray;
color: white;
text-transform: uppercase;
width: 80px;
}

.active {
width: 140px;
background-color:orange;
font-size: 25px;
text-transform: uppercase;
color: white;
}
</style>
</head>
<body>

<div class="sidebar">
<ul>
<li id="pop" class="normal">Home</li>
<li class="normal">Programs</li>
<li class="normal">Replay</li>
</ul>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>

$(document).ready(function(){

$(window).on("scroll",function() {

if($(this).scrollTop() > 500)

$("#pop").removeClass("normal").addClass("active");

else

$("#pop").removeClass("active").addClass("normal");


})
})


</script>
</body>
</html>

关于javascript - 滚动事件上的 jQuery .addClass() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39336586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com