将偏移量添加到此确切的js平滑滚动到元素代码

时间:2019-07-08 20:03:37

标签: javascript scroll offset

我需要将此js平滑滚动到元素代码以使其偏移量为100px以适应导航栏。 此网站上的另一个问题不适用于此确切代码。 这是代码:

function scrollAnchors(t, e = null) {
    function n(t) {
        return Math.floor(t.getBoundingClientRect().top)
    }
    t.preventDefault();
    var o = e ? e.getAttribute("href") : this.getAttribute("href"),
        r = document.querySelector(o);
    if (r) {
        var a = n(r);
        window.scrollBy({
            top: a,
            left: 0,
            behavior: "smooth"
        });
        var i = setInterval(function () {
            var t = window.innerHeight + window.pageYOffset >= document.body.offsetHeight - 2;
            (0 === n(r) || t) && (r.tabIndex = "-1", r.focus(), "history" in window ? window.history.pushState("", "", o) : window.location = o, clearInterval(i))
        }, 100)
    }
}
document.addEventListener("click", function (t) {
    "A" === t.target.tagName && (!t.target.href || -1 == t.target.href.indexOf("#") || t.target.pathname != location.pathname && "/" + t.target.pathname != location.pathname || t.target.search != location.search || scrollAnchors(t, t.target))
});

0 个答案:

没有答案