1. ホーム
  2. jquery

[解決済み] jQueryの遅延が機能しない

2022-02-01 11:37:37

質問

$('.transparent').removeClass('transparent').delay(2000).addClass('not_transparent').delay(4000)

半透明のdivがあり、それを非透明に切り替えたいのです。しかし、jQueryの.delay();メソッドは、ここでは動作しないようです。私は代わりに.fadeIn();を試してみました、そしてそれは遅延で動作しますが、それはクラスを変更することを動作しません。

どうすればいいですか?

.delay() の一部である項目に対して使用されます。 queue アニメーションのような 単純な addClass はキューに入らない。

を使用することができます。 setTimeout .

var trans = $('.transparent').removeClass('transparent');
setTimeout(function() {
    trans.addClass('not_transparent');
}, 2000);

別の方法として、非キューのアイテムをキューに追加するには、次のようにします。 .queue() とはいえ setTimeout の方が良いと思います。

$('.transparent').removeClass('transparent').delay(2000).queue(function(nxt) {
      $(this).addClass('not_transparent');
      nxt();
});