scrollTop不滚动到位置

问题描述:

我似乎无法滚动到设置变量,我使用正确的语法?scrollTop不滚动到位置

var offset = $(".box", this).offset().top; 
$(window).animate({scrollTop:offset}, 500); 

您不能滚动window。你不能动画滚动窗口(感谢加藤)。试试这个:

var offset = $(".box", this).offset().top; 
$("html,body").animate({scrollTop:offset}, 500); 
+0

$(window).scrollTop()[works fine](http://jsfiddle.net/katowulf/w43T6/)。你的意思是说你不能动画滚动窗口吗? – Kato 2012-02-14 16:24:09

+0

@Kato:我纠正了。是的,我的意思是说你不能动画滚动窗口。固定。 ;) – 2012-02-14 16:59:57

+0

很高兴知道,因为我从来没有尝试过动画方法。我喜欢html,body解决方案(它在真正的浏览器中是否有两次动画效果?是否值得做一些浏览器嗅探以避免双重调用?) – Kato 2012-02-14 17:22:32

以下内容适用于IE浏览器和其他浏览器。

$('body,html').animate({scrollTop: offset}, 500); 

offset()。top是相对于文档的距离。所以如果文档已经全部滚动,动画就不准确了。 ({body})。animate({scrollTop:offset + $(“body”)。scrollTop()},500);

+0

不,jQuery offset()是相对于文件,无论滚动位置如何。 – 2012-02-14 16:06:39

+0

就你而言,这是一回事。偏移+ scrolltop ===位置。但位置更清洁:-) – terjeto 2012-02-15 09:32:33

我最终不得不使用位置(),而不是偏移

var offset = item.position().top; 
$("html, body").animate({scrollTop:offset}, 500); 

并通过评论阅读,建议的文档最好是使用$(“HTML,身体”)为跨浏览器