2014-01-30 84 views
0

我發現這個代碼:DEMO元素淡出不起作用正確

當你捲動元素,將出現的元素。但是,效果只是一個不透明的變化。

我試着在元素出現時添加關鍵幀動畫,但當第一個元素出現時,所有其他元素同時出現。

DEMO with Keyframe

$(document).ready(function() { 

    /* Every time the window is scrolled ... */ 
    $(window).scroll(function(){ 

     /* Check the location of each desired element */ 
     $('.hideme').each(function(i){ 

      var bottom_of_object = $(this).position().top + $(this).outerHeight(); 
      var bottom_of_window = $(window).scrollTop() + $(window).height(); 

      /* If the object is completely visible in the window, fade it it */ 
      if(bottom_of_window > bottom_of_object){ 

       $(this).css({'opacity':'1'}); 
       $('.e1').addClass('animated fadeInUp') 
       $('.e2').addClass('animated fadeInLeft') 

      } 

     }); 

    }); 

}); 

回答

2

你只需要告訴每個功能的元素的動畫添加到並取出位改變透明度,不透明度的變化是已經分開的動畫。

Working Example

$(document).ready(function() { 

    /* Every time the window is scrolled ... */ 
    $(window).scroll(function() { 

     /* Check the location of each desired element */ 
     $('.hideme').each(function (i) { 

      var bottom_of_object = $(this).position().top + $(this).outerHeight(); 
      var bottom_of_window = $(window).scrollTop() + $(window).height(); 

      /* If the object is completely visible in the window, fade it it */ 
// Changes made here 
      if (bottom_of_window > bottom_of_object) { 
       if ($(this).hasClass('e1')) { 
        $(this).addClass('animated fadeInUp'); 
       } 
       if ($(this).hasClass('e2')) { 
        $(this).addClass('animated fadeInLeft'); 
       } 
      } 

     }); 

    }); 

}); 
+1

完美!非常感謝! – user3245085

+0

非常有用的技術 – user3130064

+0

@ user3245085很高興提供幫助。不要忘記下次將代碼添加到問題中。從codepen或jsFiddle添加演示是一個不錯的主意,但是如果沒有它們,您的問題仍應該回答。 – apaul