我有以下jquery将页面滚动到顶部,然后执行回调函数。
问题在于,即使页面已经位于顶部,它仍然会在执行回调之前等待'1000',这是我不想要的。
$('html').animate({scrollTop:0}, 1000, 'swing', function(){
//do something
});
答案 0 :(得分:3)
它会将您的文档从顶部移动到顶部......有趣但是它是如何实现的。你有其他选择。之一:
我的.scrollintoview()
jQuery plugin就是这样的。它只在必须滚动并在滚动完成后运行完整的处理程序(如果首先滚动)或者如果不需要滚动则立即滚动。
但它需要一些需要滚动的元素。您实际上并未将任何元素滚动到视图中,而只是滚动HTML。这当然不是最安全的方式。使用它们会更好:
$("html,body")
或
$(window)
支持更多跨浏览器。因此,$("html")
可能无效。
答案 1 :(得分:1)
var html=$('html');
if(html.scrollTop()>0){
html.animate({scrollTop:0}, 1000, 'swing', function(){
//do something
});
}else{
//do something
}
答案 2 :(得分:1)
if( $(window).scrollTop() > 0 ) {
$('html').animate({scrollTop:0}, 1000, 'swing', function(){
//callback after animate
});
} else {
// callback right now (no wait)
}