window.location.replace vs scrollTop

时间:2011-07-02 02:08:20

标签: javascript jquery

我在Chrome上使用以下代码段运行:

<a name="example">&nbsp;</a>

以下代码正常运行。它实际上按预期进入#example。

window.location.replace('#example');

但以下工作。它始终位于页面顶部 - 而不是#example

var target = $('a[name="example"]');
var offset = target.offset();
var top = offset.top;
console.log(top);
$('html, body').animate({scrollTop:top}, 'slow');

top返回值500+。 我错过了什么? 在此先感谢您的帮助。

更新:

删除以下CSS后

position: fixed;

上面的jQuery代码有效!但是我需要这个页面是“position:fixed;”。 如何使上面的jQuery代码与“position:fixed;”一起使用?

2 个答案:

答案 0 :(得分:1)

您是否确保文档足够高,以便向上滚动到该位置。 This jsFiddle使用您自己的代码和我编写的一些HTML来匹配它似乎在Chrome中运行良好。

答案 1 :(得分:0)

如果有效,您可以在动画完成后添加固定定位:

var el = $('html, body');
el.animate({scrollTop:top}, 'slow',function(){el.css('position','fixed');});