我有一个页面,其中包含该页面内部分的粘性导航。粘性导航和内联锚点工作正常,但如果我直接进入页面并检查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);
}
谢谢!