jQuery cross-browser “scroll to top”, with animation

前端 未结 8 921
难免孤独
难免孤独 2020-12-09 09:32

Right now I\'m using this:

$(\'#go-to-top\').each(function(){
  $(this).click(function(){ 
    $(\'html\').animate({ scrollTop: 0 }, \'slow\'); return true;          


        
相关标签:
8条回答
  • 2020-12-09 10:01

    You're returning true from the click function, so it won't prevent the default browser behaviour (i.e. navigating to thego-to-top anchor. As Mark has said, use:

    $('html,body').animate({ scrollTop: 0 }, 'slow');

    So your code should now look like:

    $('#go-to-top').each(function(){
        $(this).click(function(){ 
            $('html,body').animate({ scrollTop: 0 }, 'slow');
            return false; 
        });
    });
    
    0 讨论(0)
  • 2020-12-09 10:01

    maybe something like

    $('body').animate({scrollTop:0}, 'slow');
    

    aswell as the html one.

    edit >

    $('#go-to-top').each(function(){
      $(this).click(function(){ 
        $('html').animate({ scrollTop: 0 }, 'slow'); return true; 
        $('body').animate({ scrollTop: 0 }, 'slow'); return true; 
        $('document').animate({ scrollTop: 0 }, 'slow'); return true; 
        $('window').animate({ scrollTop: 0 }, 'slow'); return true; 
      });
    });
    

    should cover all browsers!

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