0

バナー画像をノンストップでズームインおよびズームアウトするだけの Jquery があります。これを実行すると、ブラウザーでスタック制限エラーが発生します。まだ実行されていますが、「ジャストインタイム」にのみスタックにロードする方法はありますか? 読み込まれるスタックを確認するzoomIn()zoomOut()、最初の読み込みで制限に達するまで何度も何度も読み込まれるため、ページの読み込みが非常に遅くなります。

$(document).ready(function(){

    $bannerImg = $('.post-picture img')

    function zoomIn(){
        $bannerImg.animate({
            width: 1500,
        }, 50000,'linear');

        $bannerImg.promise().done(zoomOut());
    }

    function zoomOut(){
        $bannerImg.animate({
            width: 1500,
        }, 50000,'linear');

        $bannerImg.promise().done(zoomIn());
    }

    zoomIn();

});

更新: 回答ありがとうございます。done(ZoomOut/ZoomIn) を使用するとうまくいきました。

4

3 に答える 3

0

無限ループを引き起こしているようです。幸いなことに、jQuery には、無限ループを防ぐために利用できる完全なコールバックがあります。

ノンストップ ズームインおよびズームアウト バナー

$(document).ready(function () {

    $bannerImg = $('.post-picture img');

    function zoomIn() {
        $bannerImg.animate({
            width: 1500
        }, {
            duration: 10000,
            complete: function () {
                zoomOut();
            }
        });
    }

    function zoomOut() {
        $bannerImg.animate({
            width: 100
        }, {
            duration: 10000,
            complete: function () {
                zoomIn();
            }
        });
    }

    zoomIn();

});

*ソース: * jsfiddle

于 2013-05-09T19:38:19.303 に答える