2015-10-30 23 views
0

我使用Remysharp In View插件來確定元素何時在視圖中。當它在視圖中時,我使用velocity來顯示該元素。出於某種原因,在In視圖調用中,動畫觸發兩次。在In View調用之外,它的工作原理應該如此。Remysharp的js Inview插件啓動了兩次速度轉換

爲什麼它會發射兩次?

$(".xslideUpIn").one('inview', function (event, visible) { 
     if (visible == true) { 
     $(".xslideUpIn").velocity('transition.slideUpIn', { stagger: 700 }).delay(1000) 
     } else { 
     // element has gone out of viewport 
     } 
}); 
+0

嘗試,你可以爲此創建的jsfiddle?我猜想它會發射兩次,因爲速度可能會同步移動視口,在您的函數尚未解除綁定時觸發另一個事件。嘗試使用setTimeout –

回答

0

$(".xslideUpIn").one('inview', function (event, visible) { 
    if (visible == true) { 
    setTimeout(function() { 
     $(".xslideUpIn").velocity('transition.slideUpIn', { stagger: 700 }).delay(1000) 
    }, 0); 
    } else { 
    // element has gone out of viewport 
    } 
}); 
+0

剛試過這個,仍然觸發動畫兩次。 – beliy333

+0

jsfiddle可以提供幫助 –