我在链接到div和处理固定标头时遇到问题。标头遍历div,我似乎无法使其向上滚动162像素(标头的大小)来显示完整的div。抱歉,这是一个愚蠢的问题,但是在搜索了过去半小时后,我找不到适合我的解决方案。

这是给用户的链接。

$(document).ready(function(){
    console.log(location.hash);
    if (window.location.hash){
        $location = $(document).scrollTop();
        console.log($location);
        $location = $location-162;
        console.log($location);
        window.scrollTo(0, $location);
    }
)};


这适用于hashchange,但hashchange不适用于页面加载。

最佳答案

您的问题是您混合使用窗口和$(document)。因此,您需要使用正确的脚本

$(document).ready(function(){
console.log(location.hash);
    if (window.location.hash){
        $location = $(document).scrollTop();
        console.log($location);
        $location = $location-162;
        console.log($location);
        $(document).scrollTop($location);
    }
)};


编辑:现在使用正确的函数scrollTop()和仅一个参数。

关于javascript - 链接到id(hash),检测哈希,但是scrollTo不通过固定的nav触发if语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24744329/

10-16 03:34