2012-01-25 21 views
2

マウスオーバー時にfadeToアニメーションを中断する方法はありますか?例:以下のコードでは、誰かが "スライダー$コントロール"をオフにしているときに、1750msで.1の不透明度にフェードインしますが、オンにすると500msで1つの不透明度にフェードします。もし誰かがそれらをオフにして、1750msが上がってしまう前にスライダー$コントロールが1つの不透明度に戻っても、1750msが上がって応答しないようになるまで戻ってこないでしょう。割り込みfadeTo関数

$(function() { 
    var fadeDelay = 4000, 
     // hide after 3 second delay 
     timer, hideControls = function (slider) { 
      clearTimeout(timer); 
      setTimeout(function() { 
       slider.$controls.hover(function() { 
       $(this).fadeTo(500, 1.0); 
       }, function() { 
       $(this).fadeTo(1750, 0.1); 
       }); 
      }, fadeDelay); 
     }; 
}); 

答えて

0

.stop()を使用すると、キューからアニメーションを消去したり、現在のアニメーションを停止することができます。

このようなベストを使用することを:

$(function() { 
    var fadeDelay = 4000, 
     // hide after 3 second delay 
     timer, hideControls = function (slider) { 
      clearTimeout(timer); 
      setTimeout(function() { 
       slider.$controls.hover(function() { 
       $(this).stop(true,false).fadeTo(500, 1.0); 
       }, function() { 
       $(this).stop(true,false).fadeTo(1750, 0.1); 
       }); 
      }, fadeDelay); 
     }; 
}); 

これは非常にすべてのアニメーションが停止され、キューをクリアして、要素が停止されたところからアニメーションを開始します。

+0

私はこれを上記のコードにどのように組み込みますか? – Blainer

+1

あなたが意味するのは '.stop(1,1)'です。http://api.jquery.com/stop/ –

+0

'.stop(true、true)'は実際にはアニメーションとして素晴らしいソリューションですジャンプするだろう。 '.stop(true、false)'で中断された場所から続行します:) – bardiir

0

要素のstopメソッドを呼び出すと、すべてのアニメーションが停止します。あなたはjQueryの.stop機能を使用する必要があり

0
.hover(function() { 
    $(this).stop().fadeTo(500, 1.0); 
}, function() { 
    $(this).stop().fadeTo(1750, 0.1); 
}); 
1

:これは何

$(function() { 
    var fadeDelay = 4000, 
     // hide after 3 second delay 
     timer, hideControls = function (slider) { 
      clearTimeout(timer); 
      setTimeout(function() { 
       slider.$controls.hover(function() { 
       $(this).stop(1,1).fadeTo(500, 1.0); 
       }, function() { 
       $(this).stop(1,1).fadeTo(1750, 0.1); 
       }); 
      }, fadeDelay); 
     }; 
}); 

をされ、現在のアニメーションを停止し、次のアニメーションを開始する前に、最終的な結果にジャンプします。

+0

+1に「1,1」を加える – locrizak

関連する問題