iT邦幫忙

0

jquery 消除上一個動畫?

我使用 jquery 產生了一個 slideUp 的動畫就像

$(selector).slideUp();

然後過約兩秒 slideDown()

$(selector).slideUp().delay(2000).slideDown();

運作沒問題~
但是當我狂點的時候
他就會按照點的次數上下幾次,延遲也一併處理...
也就是說我按了五次,要過十秒才會結束...
請問有沒有可以直接清除上一個動畫的方式?
我雖然有在前面加上了 hide()
他還是會繼續延遲
我是想說能不能按一次的時候他slideUp()
當我直接再按一次的時候他會直接.slideDown()
然後再直接 slideUp().delay(2000).slideDown()

youarefat iT邦新手 5 級 ‧ 2018-11-16 14:53:28 檢舉
說啥呢?看不懂
timtnlee iT邦新手 5 級 ‧ 2018-11-16 15:43:43 檢舉
.stop() ?
froce iT邦高手 1 級 ‧ 2018-11-16 21:40:52 檢舉
https://stackoverflow.com/questions/7929266/jquery-delay-how-to-stop-it

2 個回答

0
gwbasic12
iT邦見習生 0 級 ‧ 2018-11-20 17:23:16
最佳解答

如果你只是要清掉delay執行,可以使用clearQueue,像這樣

  $(selector).clearQueue();
  $(selector).stop();
  $(selector).slideUp().delay(2000).slideDown();

清除佇列並停止目前動畫,但delay不受stop取消,所以剛好在delay的情況還是會等兩秒

0
jason311101
iT邦新手 5 級 ‧ 2018-11-18 12:47:20

加個stop?

$(selector).slideUp().delay(2000).slideDown();
$(selector).stop();

我要發表回答

立即登入回答