javascript - 页面加载时,如果 URL 哈希与数组中的值之一匹配,则滚动到具有匹配 data-load-id 属性的元素

标签 javascript jquery

我目前有以下内容:

var scrollingAnchorIds = [];
    var getTheseIds = $(".anchor-content").each(function() {
        scrollingAnchorIds.push($(this).data('load-id'));
    });
    console.log(scrollingAnchorIds);

    $(window).bind("load", function() {
        if(document.URL.indexOf(scrollingAnchorIds[i]) >= 0){ 
            $('html,body').animate({scrollTop: elementWithMatchingDataLoadIdGoesHere.offset().top - 50},850);
        }
    });

我获取每个 data-load-id 的值,将它们添加到数组中。现在我一直在检查页面何时加载,url 是否包含该哈希值,如果是,则滚动到具有匹配值的元素。

它将滚动到哪个元素的示例 html:

<div data-load-id="#83" class="anchor-content"></div>
<div data-load-id="#91" class="anchor-content"></div>
<div data-load-id="#99" class="anchor-content"></div>

最佳答案

仔细想想,你的大部分代码似乎都过多了。尝试这样的事情:

$(function(){
    $('html,body').animate({scrollTop: $("[data-load-id='" + window.location.hash + "']").offset().top - 50},850);
});

我做了一个fiddle另外,尽管 window.location.hash 在此不起作用。

关于javascript - 页面加载时,如果 URL 哈希与数组中的值之一匹配,则滚动到具有匹配 data-load-id 属性的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33969310/

相关文章:

javascript - jQuery 日期选择器不适用于动态 HTML

javascript - 从多个 JSON 文件、Javascript、AJAX 进行实时搜索

javascript - 对象作为对象属性名称?

javascript - 如何将 jquery 对象转换为字符串?

javascript - 使用 jQuery 变量作为 HTML 属性

javascript - 单击 atag 时显示特定 div。并隐藏其他div

javascript - 确定对象内的嵌套数组是否有值

javascript - 动态添加的模板 div 不持久并在几秒钟内消失

php - 如何获取并使用 php.ini 来发送电子邮件

javascript - Html5-使用 SVG 路径绘制的组织层次结构在左侧被剪裁