0

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

谢谢!

4

0 回答 0