滚动到具有uRL中多个锚点的锚点

时间:2017-06-23 07:37:55

标签: javascript jquery html anchor

Anchor点有疑问。

我有一个像 .tld / sub /#point1 /#point2这样的网址,我还使用了由第一个#point1触发的标签。因此,如果有人打开链接,浏览器会检测到该页面上的第一个标签,然后需要找到第二个#point2,这是<div id="point2"></div>之类的锚点。

但是现在问题是,因为在加载页面时不可能使用多个锚点向下滚动,我必须找到另一个选项。但是,当地没有那么多的经历。谁能帮助我?

关心Martijn

2 个答案:

答案 0 :(得分:1)

$(document).ready(function() {
    goToUrl();
});


function goToUrl() {
    var newUrl      = document.URL;
    var newUrlArr   = newUrl.split("#");
    var newUrlArrLength = newUrlArr.length;
    if (newUrlArrLength>0) {
        var last = parseInt(newUrlArrLength) -1;
        var lastUrl         = newUrlArr[last];
        var lastItem        = $("#"+lastUrl);
        $('html, body').animate({
            scrollTop: lastItem.offset().top
        }, 1000);
    }
}

答案 1 :(得分:0)

好的,我改变了Stavros的答案,有点像下面的那样:

jQuery(document).ready(function($) {
    goToUrl();


    function goToUrl() {
    var newUrl      = document.URL;
    var newUrlArr   = newUrl.split("?target=");
    var defUrl = newUrlArr[1].slice(0, newUrlArr[1].indexOf("#"));

    var newUrlArrLength = defUrl.length;
    if (newUrlArrLength>0) {
        var tag = $("#"+defUrl+"");
         $(window).scrollTop(tag.offset().top);
    }
}

});

这对我有用!谢谢Stavros。