重写Parallax-Script,使其读取多个Classes而不是一个Id

时间:2017-08-24 06:28:40

标签: javascript jquery parallax

Heyo,

我有什么方法可以获得这个脚本:

function parallax (){
    var paralax_effect = document.getElementById('div1');
    paralax_effect.style.top = -(window.pageYOffset / 4)+'px';
}
window.addEventListener('scroll', parallax, false);

运行多个Classes而不是一个Id

我试过了:

function parallax (){
    var paralax_effect = document.getElementsByClassName('div1');
    paralax_effect.style.top = -(window.pageYOffset / 4)+'px';
}
window.addEventListener('scroll', parallax, false);

但这在某种程度上是行不通的。

提前致谢!

1 个答案:

答案 0 :(得分:1)

getElementsByClassName不返回单个元素,而是返回整个元素列表,而getElementById(注意单词Element / Elements中的差异)只返回单个元素。

因此,在第二个代码中,您将使用类" div1"存储元素列表。在var paralax_effect。为了操纵这些元素,您必须使用for循环它们。例如:

for (var i = 0; i < paralax_effect.length; i++) {
    current_element = paralax_effect[i]
    current_element.style.top = -(window.pageYOffset / 4)+'px';
}

这要求您的HTML至少包含一个class="div1"的元素。