0

私はjsのことに少し慣れていませんが、私を夢中にさせる問題があります。jstween を使用して簡単なアニメーションを作成しました。私の問題は、アニメーションを開始するボタンをクリックすると、アニメーションが正常に機能することです。アニメーションを再開してもボタンを押し続けると、それを防ごうとしています。

試しstop()てみstop(true)ましたが、うまくいきませんでした。以下は私のコードです:

$('.mybtn1').click(function(){

    $('.box1').tween({
    left:{
      start: 0,
      stop: 400,
      time: 0,
      duration: 1,
      units: 'px',
      effect: 'easeInOut',

    }
    });

    $.play();
})  
4

1 に答える 1

0

0関数が実行されるたびに静的な値を渡しています。left: 0要素が少しでも移動した場合は、トゥイーンを開始する前にジャンプして戻ります。

関数を実行するときに、現在の左オフセットを渡してみてください。

$(".mybtn1").click( function(){

    el = $('.box1');

    el.tween({
        left:{
            start: function() { return el.offset.left; },
            stop: 400,
            time: 0,
            duration: 1,
            units: 'px',
            effect: 'easeInOut',
        }
    });

    $.play();
});

ここで構文をいじる必要があるかもしれません。offset.leftが必要な値を返すかどうかはわかりません(el.style.leftまたは何かである可能性があります)。

于 2012-10-01T23:37:16.717 に答える