Javascript 在类的滚动位置添加和删除
嘿,我正在尝试根据滚动位置添加一个类。 它在Jquery中起作用,但我想转到香草,它不起作用。 我错过了什么 如果用户滚动到30px位置,则应添加class.c-logo--scrolled 控制台错误: 未捕获的TypeError:无法读取未定义的属性“add” 在滚动条上添加类(app.min.js:17) app.min.js:29Javascript 在类的滚动位置添加和删除,javascript,css,dom,Javascript,Css,Dom,嘿,我正在尝试根据滚动位置添加一个类。 它在Jquery中起作用,但我想转到香草,它不起作用。 我错过了什么 如果用户滚动到30px位置,则应添加class.c-logo--scrolled 控制台错误: 未捕获的TypeError:无法读取未定义的属性“add” 在滚动条上添加类(app.min.js:17) app.min.js:29 var scrollPosition = window.scrollY; var logoContainer = document.getElementsBy
var scrollPosition = window.scrollY;
var logoContainer = document.getElementsByClassName('js-logo');
window.addEventListener('scroll', function() {
scrollPosition = window.scrollY;
if (scrollPosition >= 30) {
logoContainer.classList.add('c-logo--scrolled');
} else {
logoContainer.classList.remove('c-logo--scrolled');
}
});
然后:
我刚取下。。。但不知怎的,它说:无法读取运行的\u scrollahh上的add\u class\u未定义的属性“add”…为什么我必须添加[0],所以使用窗口不安全吗?还有更好的选择吗?@Karle,因为
getElementsByClassName
返回NodeList。但是您使用的是classList
,它是元素的属性,而不是列表的属性scrollY
似乎在IE中不受支持(添加了答案链接),元素也可能依赖css。太棒了,非常感谢,我将使用pageYOffset来代替…感谢explanation@Karle,如果它解决了您的问题,请单击其左侧的复选标记接受答案。
var logoContainer = document.getElementsByClassName('js-logo');
var logoContainer = document.getElementsByClassName('js-logo')[0];