0

アプリケーションの複数のビューで実行される関数を作成しています。各ビューは、同じ要素「.co​​nsole」のインスタンスを最大 50 個持つことができます。ビューポートが各インスタンスにスクロールするたびにアクションを実行できる必要があります。変数を設定する次のコードがあります。

  //Create empty array with variable values, up to 50 
  var console = [];

  //Find each instance of ".console" and populate the array with its pixel position.
  $('.console').each(function() {
    console.push($(this)[0].offsetTop);
  });

  //Determine the current pixel position of the scroll
  var scroll = $(document).scrollTop();

これらの変数はすべて正常に動作しますが、何時間も jquery のドキュメントを調べた後では、if ステートメントがわかりません。配列の最初の項目でうまく機能するものは次のとおりです。

  if (scroll == console[0]){
    $('.container').show();
  } else {
    $('.container').hide();
  }

ただし、スクロール位置がその配列の各値と一致するときはいつでも、次のようにしたいと考えています。

if (scroll == console[0-50])

完全なチャンクは次のとおりです。

$(document).on('scroll', function(){

  //Create empty array with variable values, up to 50 
  var console = [];

  //Find each instance of ".console" and populate the array with its pixel position.
  $('.console').each(function() {
    console.push($(this)[0].offsetTop);
  });

  //Determine the current pixel position of the scroll
  var scroll = $(document).scrollTop();

  //Anytime the scroll matches any of the instances of console, show a div
  if (scroll == console[0]){
    $('.container').show();
  } else {
    $('.container').hide();
  }
});

どんな助けでも大歓迎です。私はJavascript/JQueryにかなり慣れていないので、間違った方法で問題に取り組んでいる場合はお知らせください。ありがとう!

4

5 に答える 5