滚动到锚点

来源:互联网 发布:动漫咨询的软件 编辑:程序博客网 时间:2024/06/05 20:15
window.fixedNav = function (level) {                let ele = [...document.querySelectorAll('.detail-article h2')][level];                let targetY;                // 安卓的与ios机制有些不同                if (/android/i.test(navigator.userAgent)) {                    targetY = ele.getBoundingClientRect().top + document.body.scrollTop;                } else {                    targetY = ele.getBoundingClientRect().top + document.body.scrollTop - 70;                }                let tempTimer = setInterval(function () {                    let currentY = document.documentElement.scrollTop || document.body.scrollTop;                    let tempTargetY = currentY + (targetY - currentY) / 10;                    if (Math.abs(tempTargetY - currentY) < 1) {                        tempTargetY - currentY > 0 ? tempTargetY++ : tempTargetY--;                    }                    window.scrollTo(0, tempTargetY);                    if (Math.abs(currentY - targetY) <= 2) {                        clearInterval(tempTimer);                        window.scrollTo(0, targetY);                    }                }, 5);            };