如何将javascript应用于多个类?
我使用的是引导标签,里面有一个div,有一个名为如何将javascript应用于多个类?,javascript,jquery,html,css,twitter-bootstrap,Javascript,Jquery,Html,Css,Twitter Bootstrap,我使用的是引导标签,里面有一个div,有一个名为img parallax的类和一个h1元素。之后,我有一个div,它有一个名为content的类 我所做的是在img parallax类和h1上创建一个视差效果,然后使用一个名为ScrollBanner的函数在其上移动内容 问题是,这种效果只在第一个选项卡上起作用,如果切换到第二个选项卡则不起作用甚至使用javascript代码选择类。 我使它工作的唯一方法是复制产生视差效果的函数,并使用另一个类,如img-parallax2. 我已经试过了:
img parallax
的类和一个h1元素。之后,我有一个div,它有一个名为content的类
我所做的是在img parallax
类和h1上创建一个视差效果,然后使用一个名为ScrollBanner的函数在其上移动内容
问题是,这种效果只在第一个选项卡上起作用,如果切换到第二个选项卡则不起作用甚至使用javascript代码选择类。
我使它工作的唯一方法是复制产生视差效果的函数,并使用另一个类,如img-parallax2.
我已经试过了:
- 将类更改为id
- 在javascript函数中使用逗号选择多个类,如下所示:
var headerText=document.querySelector('.img paralax,.imgparalax2')代码>
- 将
更改为document.querySelector
,但它也不起作用document.queryselectoral
.img paralax的每个元素使用一个
使用javascript函数的所有代码都是重复的:
html代码示例:
<div class="img-paralax">
<h1>Sample Title</h1>
</div>
<div class="content">
<p>Content Here</p>
</div>
还有javascript:
function scrollBanner() {
var scrollPos;
var headerText = document.querySelector('.img-paralax');
scrollPos = window.scrollY;
if (scrollPos <= 400) {
headerText.style.transform = "translateY(" + (-scrollPos/3) +"px" + ")";
}
}
window.addEventListener('scroll', scrollBanner);
function scrollBannerText() {
var scrollPosText;
var headerTextH1 = document.querySelector('.img-paralax h1');
scrollPosText = window.scrollY;
if (scrollPosText <= 400) {
headerTextH1.style.transform = "translateY(" + (-scrollPosText/3) +"px" + ")";
headerTextH1.style.opacity = 1 - (scrollPosText/400);
}
}
window.addEventListener('scroll', scrollBannerText);
函数scrollBanner(){
var-pos;
var headerText=document.querySelector('.img paralax');
scrollPos=window.scrollY;
如果(scrollPos您确实需要使用querySelectorAll
,但应记住,它返回的HTMLCollection
不是单个节点。例如,您可以使用Array.prototype.forEach
来迭代匹配选择器的所有节点
函数scrollBanner(){
var scrollPos=window.scrollY;
如果(scrollPos感谢您的建议,但是在函数中,我需要在哪里添加在选项卡更改时侦听的事件?我是Javascript新手,抱歉!很好!我可以使用单个选择器来应用效果吗?例如,仅使用.img paralax并将效果应用于具有该类的每个元素,而不是将其他类添加到查询选择器?
function scrollBanner() {
var scrollPos;
var headerText = document.querySelector('.img-paralax');
scrollPos = window.scrollY;
if (scrollPos <= 400) {
headerText.style.transform = "translateY(" + (-scrollPos/3) +"px" + ")";
}
}
window.addEventListener('scroll', scrollBanner);
function scrollBannerText() {
var scrollPosText;
var headerTextH1 = document.querySelector('.img-paralax h1');
scrollPosText = window.scrollY;
if (scrollPosText <= 400) {
headerTextH1.style.transform = "translateY(" + (-scrollPosText/3) +"px" + ")";
headerTextH1.style.opacity = 1 - (scrollPosText/400);
}
}
window.addEventListener('scroll', scrollBannerText);
function scrollBanner() {
var scrollPos = window.scrollY;
if (scrollPos <= 400) {
[].forEach.call(
document.querySelectorAll('.img-paralax, .img-paralax2'),
function(node) {
node.style.transform = "translateY(" + (-scrollPos/3) +"px" + ")";
}
);
}
}
function scrollBanner() {
var scrollPos = window.scrollY;
if (scrollPos <= 400) {
[].forEach.call(
document.querySelectorAll('.img-paralax, .img-paralax2'),
function(node) {
node.style.transform = "translateY(" + (-scrollPos/3) +"px" + ")";
var text = node.querySelector('h1');
text.style.transform = "translateY(" + (-scrollPos/3) +"px" + ")";
text.style.opacity = 1 - scrollPos/400;
}
);
}
}