我正在尝试使用JavaScript在我的页面上检测滚动条。这样,当用户滚动一定数量的页面时,我可以更改某些元素的类和属性。这是我的JS功能:Javascript垂直滚动功能
function detectScroll() {
var header = document.querySelector(".headerOrig"),
header_height = getComputedStyle(header).height.split('px')[0],
fix_class = "changeColor";
if(window.pageYOffset > header_height) {
header.classList.add(fix_class);
}
if(window.pageYOffset < header_height) {
header.classList.remove(fix_class);
}
var change = window.setInterval(detectScroll, 5000);
}
,当加载页面时,我称之为:
<body onload="detectScroll();">
不过,我有这个问题 - 我需要建立一个非常小的区间,以使函数被调用并且类会立即更改。但是,然后页面冻结,除JS功能以外的所有内容都运行得非常缓慢。 有什么更好的方式在JavaScript中实现这一点?
感谢您的任何意见/建议。
我认为JavaScript中有一个onscroll事件处理程序。你有没有试过
? –有'document.addEventListener(“scroll”,function(){console.log(document.body.scrollTop)})''。它比您的解决方案更容易,响应更快。 – veproza