我在Chrome上使用以下代码段运行:
<a name="example"> </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;”一起使用?
答案 0 :(得分:1)
您是否确保文档足够高,以便向上滚动到该位置。 This jsFiddle使用您自己的代码和我编写的一些HTML来匹配它似乎在Chrome中运行良好。
答案 1 :(得分:0)
如果有效,您可以在动画完成后添加固定定位:
var el = $('html, body');
el.animate({scrollTop:top}, 'slow',function(){el.css('position','fixed');});