Fade in element on scroll down using css

前端 未结 4 960
面向向阳花
面向向阳花 2020-12-28 22:40

Example: http://www.chartjs.org/

When scrolling down each article shows up when it gets in the view-port of the browser. The css is

         


        
相关标签:
4条回答
  • 2020-12-28 22:44

    Mohammeds answer does not take into account any absolutely positioned images... we should use offset instead of position

    $(window).scroll(function () {
    
        /* Check the location of each desired element */
        $('.article').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);
    
             }
         });
    });
    
    0 讨论(0)
  • 2020-12-28 22:47

    Demo Fiddle

    Do you want something like this ?

       $(window).scroll(function () {
    
            /* Check the location of each desired element */
            $('.article').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).animate({
                        'opacity': '1'
                    }, 500);
    
                }
    
            });
    
        });
    
    0 讨论(0)
  • 2020-12-28 22:55

    Best Process:

    HTML:

    <div id="container">
    
        <div id="monster">Hello</div>
        <div>Hello</div>
        <div class="hideme">Fade In</div>
        <div class="hideme">Fade In</div>
        <div class="hideme">Fade In</div>
        <div class="hideme">Fade In</div>
        <div class="hideme">Fade In</div>
    
    </div>
    

    jQuery:

    $(function(){  // $(document).ready shorthand
      $('.monster').fadeIn('slow');
    });
    
    $(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).animate({'opacity':'1'},1500);
    
                }
    
            }); 
    
        });
    
    });
    

    CSS:

    #container
    {
        height:2000px;    
    }
    
    #container DIV
    { 
        margin:50px; 
        padding:50px; 
        background-color:pink; 
    }
    
    .hideme
    {
        opacity:0;
    }
    
    0 讨论(0)
  • 2020-12-28 23:06

    Because I read it in the comments:

    If you want the object to fade in when 1/3 of the object is visible, then use this code:

    jQuery:

    $(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())/3;
                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);
    
                }
    
            });
    
        });
    
    });
    

    Only line I changed, is this:

    var bottom_of_object = $(this).position().top + ($(this).outerHeight())/3;
    

    By changing /3 to e.g. /4 you can let it fade in, when 1/4 of the object is visible.

    0 讨论(0)
提交回复
热议问题