jQueryでのスクロールイベント中にanimateを止めたい
jQueryでスクロール位置によってコンテンツを表示させています。
その中で、表示後にその中の画像の位置を変更してアニメーションさせている部分があるのですが、スクロールごとに何度も動いてしまいます(1回だけで止めたい)
$(window).scroll(function() {
var scroll = $(window).scrollTop();
var windowHeight = $(window).height();
$('#box1').each(function() {
var boxPos = $(this).offset().top;
if(scroll > boxPos - windowHeight + 300){
$(this).find('.transparence').animate({
'opacity': '1'
}, 600);
$(this).find('.textarea').delay(400).animate({
'opacity': '1',
}, 600, function() {
$('#moveimg01').delay('200').animate({
'left': '270px',
'bottom': '20px'
}, 300, function() {
$('#moveimg01').animate({
'left': '250px',
'bottom': '0'
}, 200);
});
});
}
});
$('#box2').each(function() {
var boxPos = $(this).offset().top;
if(scroll > boxPos - windowHeight + 300){
$(this).find('.transparence').animate({
'opacity': '1'
}, 600, function() {
$('#moveimg02').delay(200).animate({
'right': '-20px',
'top': '40px'
}, 300, function() {
$('#moveimg02').animate({
'right': '0',
'top': '60px'
}, 200);
});
});
$(this).find('.textarea').delay(400).animate({
'opacity': '1',
}, 600);
}
}); ・・・続く
この最後の
$('#moveimg01').animate({
'left': '250px',
'bottom': '0'
}, 200);
の部分でそれぞれ止めたいのですが、スクロールするたびに何度も動いてしまいます。
この部分で止める方法、もっとほかの書き方などありますでしょうか。