【问题标题】:jquery animate scrolltop callbackjquery 动画滚动顶部回调
【发布时间】:2011-09-06 14:19:32
【问题描述】:

我有以下 jquery 将页面滚动到顶部,然后执行回调函数。

问题是即使页面已经在顶部,它仍然会等待“1000”过去后再执行回调,我不希望它这样做。

$('html').animate({scrollTop:0}, 1000, 'swing', function(){

//do something

});

【问题讨论】:

    标签: jquery callback jquery-animate scrolltop


    【解决方案1】:

    它不等待

    它使您的文档从上到上动画化...有趣但就是这样。你还有其他选择。要么:

    • 在滚动之前检查您的页面位置(正如其他人建议的那样,提供一些代码)或
    • 使用一些不同的 jQuery 插件

    我的.scrollintoview() jQuery plugin 就是这样工作的。它仅在必须滚动时才滚动,并在滚动完成后(如果首先滚动)或在不需要滚动时立即运行完整的处理程序。

    但它需要一些需要滚动的元素。您实际上并没有将任何元素滚动到视图中,而只是将 HTML 滚动到视图中。这当然不是最安全的方法。最好使用以下任何一种:

    $("html,body")
    

    $(window)
    

    它支持更多的跨浏览器。所以你的$("html") 可能并不适用于所有这些。

    【讨论】:

      【解决方案2】:
      if( $(window).scrollTop() > 0 ) {
          $('html').animate({scrollTop:0}, 1000, 'swing', function(){
      
              //callback after animate
      
          });
      } else {
          // callback right now (no wait)
      }
      

      【讨论】:

        【解决方案3】:
        var html=$('html');
        if(html.scrollTop()>0){
          html.animate({scrollTop:0}, 1000, 'swing', function(){
          //do something
        });
        }else{
          //do something
        }
        

        【讨论】:

          猜你喜欢
          • 2012-08-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多