2016-05-16 2 views
1

В настоящее время я использую следующее для анимации при прокрутке некоторых контейнеров на моем сайте, однако, поскольку некоторые из моих контейнеров имеют большую высоту, есть способ изменить его так он исчезает, когда нижняя часть окна находится в центре контейнера, а не внизу контейнера? Кроме того, есть ли способ указать пиксели?Затухание в прокрутке - центр контейнера

$(window).scroll(function() { 

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

     var bottom_of_object = $(this).offset().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).animate({ 
       'opacity': '1' 
      }, 500); 

     } 
    }); 
}); 

ответ

1

что-то вроде этого?

$(window).scroll(function() { 

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

     var top_of_object = $(this).offset().top; 
     var middel_of_window = $(window).scrollTop() + ($(window).height()/2); 

     /* If the object is completely visible in the window, fade it in */ 
     if (middel_of_window > (top_of_object + 300)) { 

      $(this).animate({ 
       'opacity': '1' 
      }, 500); 

     } 
    }); 
}); 

Надеюсь, это поможет вам.

+0

Это действительно спасибо, но все еще не совсем верно для пары моих контейнеров. Есть ли способ указать пиксели? например когда нижняя часть окна составляет 300 пикселей в контейнер, а затем исчезает? –

+0

@MikeRainsbury [документация говорит, что возвращаемое значение находится в пикселях] (http://www.w3schools.com/jquery/css_offset.asp), поэтому добавление 300 помещает средний 300px в объект перед его анимацией. –

Смежные вопросы