gpt4 book ai didi

javascript - 如何在没有 jQuery 的情况下实时获取 scrollTop 位置?

转载 作者:行者123 更新时间:2023-12-01 15:55:36 25 4
gpt4 key购买 nike

我想通过 CSS 效果使我的导航栏看起来更好。我将其作为样式类:

.bg-a1{
background-color: #23e896;
color: white;
}
.bg-a2{
background-color: #1cb374;
color: white;
animation: all 0.3 ease-in-out;
}
.pad-nav-a{
padding: 30px;
}
.pad-nav-b{
padding: 20px;
animation: all 0.3 ease-in-out;
}

现在,我想在 scrollTop > 10添加pad-nav-bbg-a2 .我通常使用 jQuery:

$(document).ready(function () {

$(window).scroll(function () {
var scrollTop = $(window).scrollTop();

if (scrollTop >= 10) {
$('#navbar').addClass('pad-nav-b bg-a2');
$('#navbar').removeClass('pad-nav-a bg-a1');
} else {
$('#navbar').removeClass('pad-nav-b bg-a2');
$('#navbar').addClass('pad-nav-a bg-a1');
}

});
});

但现在,我只想使用原生 javaScript 进行制作。如何像jQuery一样实时跟踪scrollTop?

最佳答案

你可以事件监听滚动:

const navbar = document.getElementById("navbar");
window.addEventListener("scroll", function(event) {
var top = window.pageYOffset || document.documentElement.scrollTop,
left = window.pageXOffset || document.documentElement.scrollLeft;
console.log(top,left);
if (top >= 10) {
console.log('applying...........')
navbar.classList.add('pad-nav-b', 'bg-a2');
navbar.classList.remove('pad-nav-a', 'bg-a1');
}
else {
console.log('removing...........')
navbar.classList.remove('pad-nav-b', 'bg-a2');
navbar.classList.add('pad-nav-a', 'bg-a1');
}
}, false);
<html>
<head>
<style>
.bg-a1{
background-color: #23e896;
color: white;
}
.bg-a2{
background-color: #1cb374;
color: white;
animation: all 0.3 ease-in-out;
}
.pad-nav-a{
padding: 30px;
}
.pad-nav-b{
padding: 20px;
animation: all 0.3 ease-in-out;
}
body {
background-color: lightblue;
height:3000px;
}
</style>
</head>
<body>
<div id="navbar">nav bar</div>
</body>
<html>

你可以看到它确实有效..

关于javascript - 如何在没有 jQuery 的情况下实时获取 scrollTop 位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61074213/

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