このコードがあり、うまくいきましたが、ボタンをクリックしたときにこれを検出してすべてのアニメーションを停止し、クリックしたボタンの新しいものjqueryの停止/終了が長すぎてアニメーションを停止できない
$(document).ready(function(){
var interval1,interval2,oref;
interval1 = setInterval(function(){PureAnim("Pure");},1000);
$("#Pure").click(function(){
updateContent("index");});
$("#Comprar").click(function(){
updateContent("Pacotes","Comprar");});
function updateContent(ref, botao = "Pure")
{
clearInterval(interval1);
$("#" + botao).finish(); //i've tried stop() here too
interval1 = setInterval(function(){PureAnim(botao);},500);
$("#mCont").load(ref + ".html #wauw");
}
function PureAnim(ref){
if($("#" + ref).css("opacity") == 1.0);
{
$("#" + ref).fadeTo(500, 0.0);
}
if($("#" + ref).css("opacity") == 0.0);
{
$("#" + ref).fadeTo(500, 1.0);
}
}
});
実際にはアニメーションが停止するのは大きな遅れです。 最初に他のボタンをクリックするとすぐに停止しますが、1回目以降はいくつかのPureAnimのステップが停止します。
私はすでに.finishをすべての可能な.stop()に変更しようとしましたが、どれも作業に入っていませんでした。
仕上げや読み込み機能についてではなく、jqueryがそれらのアニメーションをどのように処理するのか、それが原因である可能性が高いと思います。 Video of the error
を使用すると、CSSアニメーションの代わりのJSを使用してみましたか? –
いいえ、どうしてですか? –
あなたの 'finish()'は間違った 'botao'に適用されます(終了したいものではなく* new *値に適用されます) - 終了を適用できるようにbotaoの値を保存する必要があります。 –