1

JasonFrameのGrabBagのタイプライタープラグインを使用しています。

しかし、私は今、このタイプライターの実行中の任意の時点で一時停止および再開できる必要がある状況にいることに気づきました。

理想的には.typewriter("pause")、一時停止して、中断した.typewriter("resume")ところからアニメーションを再開する必要があります。

プラグイン内で変数を設定し、paused反復ごとに変数をチェックして間隔を実行したままにしてみました。trueの場合、何もしません。

ただし、jQueryプラグインを作成するスキルが不足しているため、関数を呼び出してタイプライターを一時停止するたびに、最初からやり直します。paused変数がリセットされたのではないかと思います。

このプラグインを一時停止可能にするにはどうすればよいですか?

4

1 に答える 1

1

jsBin デモ

ここに次の 2 行を追加します。

(function($) {      
    $.fn.typewriter = function() {
        this.each(function() {
            var $ele = $(this), str = $ele.text(), progress = 0;
            $ele.text('');
            timer = setInterval(function() {
              if(pause===false){    // ADD THIS LINE ////////////////////////
                  $ele.text(str.substring(0, progress++) + (progress & 1 ? '_' : ''));
                  if (progress >= str.length) clearInterval(timer);
              }                     // ADD THIS LINE ////////////////////////
            }, 100);
        });
        return this;
    };   
})(jQuery);

$("#typewriter").typewriter(); // run your plugin

そして私はこれを作成しました:

var pause = false;
$('#play_pause').click(function(){
  pause= !pause ? true : false;    // toggle true/false pause states
});

編集:以下のコメントでより良いプラグインのようなソリューションを見つけてください!

于 2012-08-27T00:19:56.387 に答える