将JavaScript scroll top更改为id或类而不是正文
我有一份附在页面顶部的菜单。我可以将其更改为div、call或id,而不是使用body来显示位置 我的当前代码 这段代码告诉侧菜单根据一个类来定位自己,一旦我从页面顶部滚动了40px,我如何更改它,使其从一个ID或类变成40px将JavaScript scroll top更改为id或类而不是正文,javascript,actionscript-2,onscroll,onscrolllistener,Javascript,Actionscript 2,Onscroll,Onscrolllistener,我有一份附在页面顶部的菜单。我可以将其更改为div、call或id,而不是使用body来显示位置 我的当前代码 这段代码告诉侧菜单根据一个类来定位自己,一旦我从页面顶部滚动了40px,我如何更改它,使其从一个ID或类变成40px window.onscroll = function () {onScrollNav()}; function onScrollNav() { if (document.body.scrollTop > 40 || document.documentEl
window.onscroll = function () {onScrollNav()};
function onScrollNav() {
if (document.body.scrollTop > 40 || document.documentElement.scrollTop > 40) {
document.getElementById("mySidenav").className = "sidenavScroll";
console.log("you hit 40px !!");
} else {
document.getElementById("mySidenav").className = "sidenavScrollReset";
console.log("you back to 0 !!");
}
}
我认为你最好的办法是得到滚动位置,元素的偏移量和问题中的ID,最后做一些快速的数学运算
var elOffset = document.getElementById('<ID HERE>').getBoundingClientRect();
function onScrollNav() {
var diff = (document.documentElement.scrollTop - elOffset.top);
if (diff > 40) {
document.getElementById("mySidenav").className = "sidenavScroll";
console.log("you hit 40px offset from the element with ID!!");
} else {
document.getElementById("mySidenav").className = "sidenavScrollReset";
console.log("you back to 0 !!");
}
}
var elOffset=document.getElementById(“”).getBoundingClientRect();
函数onScrollNav(){
var diff=(document.documentElement.scrollTop-elOffset.top);
如果(差异>40){
document.getElementById(“mySidenav”).className=“sidenavScroll”;
log(“您与ID为!!”的元素的偏移量达到了40px);
}否则{
document.getElementById(“mySidenav”).className=“sidenavScrollReset”;
log(“你回到0!!”;
}
}
所以参考元素,确定位置,找出差异。谢谢,我会试试这个