画像を画面幅に拡大縮小し、すべての画像の拡大縮小された高さに設定されるスクロールラッパーを設定し、scrollTop値を調べてjQueryのcss()を使用して画像の上部位置を設定する、単純な視差スクローラーを作成しています。主な機能は次のとおりです。
function positionSlides() {
sT = $(window).scrollTop();
$('div.slide img').each(function(){
wp = $(this).attr('data-waypoint');
if(sT >= wp){
$(this).css({'top' : wp, 'border' : '1px solid red'});
//console.log(sT + ':sT, ' + wp + ':wp');
}
else{
$(this).css({'top' : ((wp-sT)/4)+sT, 'border' : '1px solid blue'});
}
});
}
境界線の色の設定は、どの条件ステートメントが通過するかをテストするためにあります。
positionSlides()は、スクロールを介して呼び出されます
$(window).scroll(function(){
positionSlides();
});
私の問題はsT >= wp
、cssプロパティ'top'がの値に設定されていない場合ですwp
。これは、elseステートメントによって渡された最後の値と思われる値に設定されます。これは。よりわずかに小さい値ですwp
。しかし同時に'border' : '1px solid red'
、同じifステートメントを介して正しく設定されます。
ステートメントのif部分に「top」プロパティが設定されていないのはなぜですか?