スクロールでdivをアニメーション化しようとしています。要点は、divの幅が80vwに達して停止するまで大きくなければならないということです。これは起こりますが、> = outerWidth * 0.8の条件が満たされなくても、変数は成長し続けます(コンソールに記録されます)。これにより、80vwまでスクロールアップしてからスクロールするたびに、幅がXvwになります。条件が満たされなくても変数が増加し続ける
$(window).on('scroll',function(){
var scrollTop = $(this).scrollTop();
var outerHeight = $(this).outerHeight();
var outerWidth = $(this).outerWidth();
var scrollBottom = scrollTop + outerHeight;
var scrollTop = $(this).scrollTop();
console.log(growNaranja);
if (scrollTop > lastScrollTop){ // scroll down
if(naranjaWidth <= (outerWidth*0.8) ){
growNaranja = (naranja.outerWidth()*100)/outerWidth;
growNaranja = growNaranja+(scrollTop*0.05);
$('.grow.naranja').css('width', growNaranja + 'vw');
}
} else { // scroll up
if(naranjaWidth >= (outerWidth*0.1) ){
growNaranja = (naranja.outerWidth()*100)/outerWidth;
$('.grow.naranja').css('width', growNaranja + 'vw');
growNaranja = growNaranja - ((lastScrollTop-scrollTop)*0.05);
$('.grow.naranja').css('width', growNaranja + 'vw');
}
}
lastScrollTop = scrollTop;
});
実例hereを見ることができます。
?あなたは比較のためにそれを使用していますが、実際には値を持つ変数ではありません。 – Slime