jquery 动画滚动顶部回调

Posted

技术标签:

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

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

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

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

//do something

);

【问题讨论】:

【参考方案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

【讨论】:

以上是关于jquery 动画滚动顶部回调的主要内容,如果未能解决你的问题,请参考以下文章

Opera 错误上的 jQuery 动画滚动顶部

如何在不将页面滚动条重置为顶部的情况下使用 jQuery 为固定 div 设置动画

Jquery 动画返回顶部

使用 jQuery 动画 scrollTop 总是从顶部开始

Jquery动画没有正确检测滚动

jQuery 滚动动画简单版