试图循环一个函数来运行多个元素 - jQuery

时间:2017-06-01 00:01:01

标签: javascript jquery css

我正试图让这个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'];

但不幸的是,我不能让电子商务工作,这对我来说非常令人沮丧。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

您可以在jQuery中使用多个选择器,只需在选择器之间使用逗号即可选择不同的元素。

 $("#pAbout, #pConcept, #pBroadcast, #pDigital, #pDesign, #pContact")
    .each(function(){
     //manipulate element here
 });

each()迭代所有匹配的元素,因此无需检查长度等。