Show Div when scroll position

前端 未结 3 1695
野性不改
野性不改 2020-11-27 11:42

First of all i would like to refer to this website: http://annasafroncik.it/ I love the way the animations come into view. Is it hard to create a similar function in jquery?

相关标签:
3条回答
  • 2020-11-27 12:29

    Basically, you want to add a "hideme" class to every element you want hidden (then you set that class to "opacity:0";

    Then, using jQuery you set a $(window).scroll() event to check the location of the bottom of every "hideme" element against the bottom edge of your visible window.

    Here's the meat of it ...

    /* 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).offset().top + $(this).outerHeight();
            var bottom_of_window = $(window).scrollTop() + $(window).height();
    
            /* If the object is completely visible in the window, fade it in */
            if( bottom_of_window > bottom_of_object ){
    
                $(this).animate({'opacity':'1'},500);
    
            }
    
        }); 
    
    });
    

    Here's a full jsfiddle: http://jsfiddle.net/tcloninger/e5qaD/

    0 讨论(0)
  • 2020-11-27 12:31

    Try this . It worked for me

    $(document).scroll(function() {
      var y = $(this).scrollTop();
      if (y > 400) {
        $("body").addClass("allowshow");
      } else {
        $("body").removeClass("allowshow");
      }
    });
    

    and the css for this is

    .showmydiv{display:block}
    
    0 讨论(0)
  • 2020-11-27 12:33

    Plugins? Maybe, but you could definitely build any animation combinations you could imagine with jQuery by yourself. If you have a firm grasp on selectors and CSS, the sky's the limit! I'd suggest starting on the jQuery website and checking out some examples.

    To help get the ball rolling, and maybe give you some ideas if you're already familiar with jQuery, you could try the following...figure out how far down the page your div is, listen for scroll events, and when the div comes into focus (i.e.: the page has been scrolled past the div's position you worked out), run an animation. Something like:

    <div id="my_div">Some content</div>
    
    <script type="text/javascript">
    
        $(document).ready(function() {
    
            var my_div = $("#my_div");
            var div_top = my_div.offset().top;
    
            $(document).scroll(function() {
                if (div_top <= $(document).scrollTop()) {
                    // do some cool animations...
                }
            });
    
        });
    
    </script>
    

    I hope I haven't messed up my syntax!

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