gpt4 book ai didi

jquery - jQuery 中的 toggleClass 跳过 css 规则

转载 作者:太空宇宙 更新时间:2023-11-04 14:25:47 26 4
gpt4 key购买 nike

我有一个 id="header" 的 div,初始 css 规则:padding: 25px 0;。向下滚动页面时,我想减少此 div 的填充:

$(document).ready(function() {
var headerID = $("#header");
$(this).scroll(function() {
if (!$(this).scrollTop())
headerID.toggleClass("headerScrolled");
else if (!headerID.is(".headerScrolled"))
headerID.toggleClass("headerScrolled");
});
});
.headerScrolled {
padding: 15px 0;
}

但是当我向下滚动页面时,填充不会改变。我的代码有什么问题?

最佳答案

您的两个条件相互抵消。对 toggleClass() 进行一次调用并提供 bool 参数以指定是否应根据当前 scrollTop 值添加或删除类更有意义。另请注意,您应该在 window 而不是 document 上监听滚动。试试这个:

$(document).ready(function() {
var $header = $("#header");

$(window).scroll(function() {
$header.toggleClass('headerScrolled', $(this).scrollTop() !== 0);
});
});
html,
body {
height: 1000px;
margin: 0;
}

#header {
padding: 25px 0;
background-color: #CCC;
width: 100%;
position: fixed;
}
#header.headerScrolled {
padding: 15px 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="header">
Header
</div>

关于jquery - jQuery 中的 toggleClass 跳过 css 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55419150/

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