アプリケーションの複数のビューで実行される関数を作成しています。各ビューは、同じ要素「.console」のインスタンスを最大 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にかなり慣れていないので、間違った方法で問題に取り組んでいる場合はお知らせください。ありがとう!