3

スライド式のdivと、さまざまな速度でアニメーションをトリガーするいくつかのボタンがあります(継続時間にさまざまな値を使用することにより)。

ボタンは次のようなものです:[左x2][左x1][左x0.5][右x0.5][右x1][右x2]

私のコードは現在次のようなものです:

  //leftVal is set based on where the div is currently placed
  //timeLeft is set based on which button is "on hover"  

  $('#content-holder').animate({       
    "left": leftVal        
  }, {queue:false, duration:(timeLeft), easing:"quadEaseOut"});       

これはChromeでは問題ありませんが、IEのような他のブラウザでは、アニメーションがジャンプし、新しい速度で続行する前に、スクロールするdivが一瞬停止するのを目に見えて見ることができます。

可変速スクロールを実現する最善の方法は、アニメーションを終了して新しいアニメーションを開始せずに、アニメーションの長さに直接影響を与えることだと思いますが、これが可能かどうかはわかりません。任意のヒント?

4

1 に答える 1

1

私はあなたがこれを探していると思います:

$('#content-holder').stop().animate({       
"left": leftVal
}, {queue:false, duration:(timeLeft), easing:"quadEaseOut"});

.stop()キューを強制終了し、その後アニメーションを開始します。(http://api.jquery.com/stop/

私は通常、複数のボタンをスパムするときにWebサイトがつまずくのを防ぐために使用します。

イージングを使用しているため、アニメーションがスムーズに実行されないことに注意してください。新しいアニメーションを呼び出すと、イージングも最初から「再生」されます。

しかし、あなたの問題があなたが望むものであると私が推測するならば、説明を読んでください。

それが役に立ったかどうか教えてください!

于 2011-09-27T10:23:28.087 に答える