javascript - 重写视差脚本,使其读取多个类而不是一个 ID

标签 javascript jquery parallax

嘿哟,

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

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

运行多个而不是一个Id

我试过这个:

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

但这不知何故不起作用。

提前致谢!

最佳答案

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" 的元素。

关于javascript - 重写视差脚本,使其读取多个类而不是一个 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45854418/

相关文章:

javascript - typeof 创建具有未定义值的新变量(如果它不存在或不存在)

jquery - 如何让 jquery 拖动在移动设备上工作?

javascript - 使用 jquery 设置文本字段的值

javascript - 如何添加和删除组件? (视差JS)

html - 如何创建这样的视差效果?

javascript - 这是一个很好的 javascript 装饰器模式吗?

javascript - 如何在多个文件中使用全局变量

javascript - 背景图像水平视差

javascript - 复选框检查事件未被阻止

jquery - 如何使用 jQuery 获取 div 的第一个 span 元素并更改类