jQueryでのスクロールイベント中にanimateを止めたい


jQueryでスクロール位置によってコンテンツを表示させています。  
その中で、表示後にその中の画像の位置を変更してアニメーションさせている部分があるのですが、スクロールごとに何度も動いてしまいます(1回だけで止めたい)

[code]

    $(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);
            }
        }); ・・・続く
    
[/code]

この最後の

[code]

    $('#moveimg01').animate({
      'left': '250px',
      'bottom': '0'
    }, 200);
    
[/code]

の部分でそれぞれ止めたいのですが、スクロールするたびに何度も動いてしまいます。  
この部分で止める方法、もっとほかの書き方などありますでしょうか。




画面内の要素位置をスクロールするたびに記録しておき  
($(anim要素).offset().top + $(anim要素).outerHeight()) -
$(window).scrollTop()がマイナス値 -> プラス値になったとき  
または  
$(anim要素).offset().top - ($(window).scrollTop() + $(window).height())がプラス値 ->  
マイナス値になったとき  
にアニメーションさせればいいんでないでしょうか。

前の要素位置は$(anim要素).data('before', beforePos);で要素ごとにセットしておけばいいかと

