jquery之stop()的用法
阿新 • • 發佈:2018-11-28
工作中遇到過的實際案例:
1、我在專案裡做的一個下拉選單,當滑鼠移上去的時候就選單顯示,當滑鼠離開的時候選單隱藏
如果我快速不斷地將滑鼠移入移出選單(即,當選單下拉動畫未完成時,滑鼠又移出了選單)就會產生“動畫積累",當滑鼠停止移動後,積累的動畫還會持續執行,直到動畫序列執行完畢。 2、專案裡ng-click 點選事件,然後讓一個div彈窗淡入淡出,(即,當連續多次點選按鈕觸發事件,就會產生點選事件多次點選後)就會產生“動畫積累",當多次點選按鈕完成後,積累的動畫還會持續執行,直到動畫序列執行完畢。 解決方法:在寫動畫效果的程式碼前加入stop(true
,
true
),這樣每次快速的移入移出選單,就正常了,當移入一個選單的時候,停止所有加入佇列的動畫,但是完成當前的動畫(跳至當前動畫的最終效果位置)
$scope.sendMsg = function($event){ $event.stopPropagation(); $('.add').stop(true,true).fadeIn(500); $('.add').stop(true,true).delay(2000).fadeOut(1000); }