我有一个页面,该页面中的部分带有粘性导航。粘性导航和内联锚点工作正常,但如果我直接进入页面并检查window.location.hash
,我遇到了问题,offset().top
计算不正确。这是因为我的一个部分有一系列浮动 div(以形成网格),并且计算是在浮动发生之前查看 div 高度(堆叠)。一种解决方法.. 我讨厌这个选项是等待 2 秒然后执行scrollTo()
.
有没有办法在浮动执行后立即进行此计算?我试过了$(window).load()
,行为是断断续续的。我也觉得我setTimeout()
会根据加载速度等不正确。
或者有没有办法在不计算偏移量的情况下滚动到直接去div#id
?
这就是我现在管理它的方式:
if(window.location.hash) {
setTimeout(function(){
var ID = '#' + window.location.hash.substr(1);
$.scrollTo($(ID).offset().top- nav_height2, 800, {axis:'y'}) ;
}, 2000);
}
谢谢!