我正试图让这个jQuery视差代码工作,但我不想意大利面条。如何循环应用于多个元素ID?
(它不适用于类,因为函数需要多次运行特定于每个特定div) - 在循环方面我不是很好,仍然在学习如何做这些东西。
无论如何,这是一个部分的功能代码(带有子div的div,#about>在此实例中为#pAbout):
$(document).ready(function() {
if ($("#pAbout").length) {
parallax();
}
});
$(window).scroll(function(e) {
if ($("#pAbout").length) {
parallax();
}
});
function parallax(){
if( $("#pAbout").length > 0 ) {
var plxBackground = $("#pAbout");
var plxWindow = $("#about");
var plxWindowTopToPageTop = $(plxWindow).offset().top;
var windowTopToPageTop = $(window).scrollTop();
var plxWindowTopToWindowTop = plxWindowTopToPageTop - windowTopToPageTop;
var plxBackgroundTopToPageTop = $(plxBackground).offset().top;
var windowInnerHeight = window.innerHeight;
var plxBackgroundTopToWindowTop = plxBackgroundTopToPageTop - windowTopToPageTop;
var plxBackgroundTopToWindowBottom = windowInnerHeight - plxBackgroundTopToWindowTop;
var plxSpeed = 0.35;
plxBackground.css('top', - (plxWindowTopToWindowTop * plxSpeed) + 'px');
}
}
我希望创建一个这样的数组:
var ids = ['#pAbout', '#pConcept', '#pBroadcast', '#pDigital', '#pDesign', '#pContact'];
但不幸的是,我不能让电子商务工作,这对我来说非常令人沮丧。任何帮助将不胜感激!
答案 0 :(得分:1)
您可以在jQuery中使用多个选择器,只需在选择器之间使用逗号即可选择不同的元素。
$("#pAbout, #pConcept, #pBroadcast, #pDigital, #pDesign, #pContact")
.each(function(){
//manipulate element here
});
each()
迭代所有匹配的元素,因此无需检查长度等。