web-dev-qa-db-ja.com

要素がアニメーション化されているかどうかをjQueryで調べるにはどうすればよいですか?

ページ上のいくつかの要素を移動しようとしていますが、アニメーションの発生中に、「overflow:hidden」をelemntに適用し、アニメーションが完了したら「overflow」を「auto」に戻したいと思います。

JQueryにはいくつかの要素がアニメーション化されているかどうかを判断するユーティリティ関数がありますが、ドキュメント内のどこにも見つかりません

98
Radu
if( $(elem).is(':animated') ) {...}

詳細情報http://docs.jquery.com/Selectors/animated


または:

$(elem)
    .css('overflow' ,'hidden')
    .animate({/*options*/}, function(){
        // Callback function
        $(this).css('overflow', 'auto');
    };
196
James

または、何かがアニメートされていないかどうかをテストするには、単に「!」を追加できます。

if (!$(element).is(':animated')) {...}
5
Tim
$('selector').click(function() {
  if ($(':animated').length) {
    return false;
  }

  $("html, body").scrollTop(0);
});
0

アニメーション要素にcssを適用する場合は、:animated擬似セレクターを使用して、このようにします。

$("selector").css('overflow','hidden');
$("selector:animated").css('overflow','auto');

ソース: https://learn.jquery.com/using-jquery-core/selecting-elements/

0
Lucky