javascript 动画滚动到纯JS中的目标

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 动画滚动到纯JS中的目标相关的知识,希望对你有一定的参考价值。

var links = document.getElementsByClassName('scroll-link');

for (var i = 0; i < links.length; i++) {
    links[i].onclick = scroll;
}

function scroll(e) {
    e.preventDefault();
    var id = this.getAttribute('href').replace('#', '');
    var target = document.getElementById(id).getBoundingClientRect().top;
    animateScroll(target);
}

function animateScroll(targetHeight) {
    targetHeight = document.body.scrollHeight - window.innerHeight > targetHeight + scrollY ? 
        targetHeight : document.body.scrollHeight - window.innerHeight;
    var initialPosition = window.scrollY;
    var SCROLL_DURATION = 30;
    var step_x = Math.PI / SCROLL_DURATION;
    var step_count = 0;
    requestAnimationFrame(step);
    function step() {
        if (step_count < SCROLL_DURATION) {
            requestAnimationFrame(step);
            step_count++;
            window.scrollTo(0, initialPosition + targetHeight * 0.25 * Math.pow((1 - Math.cos(step_x * step_count)), 2));
        }
    }
}

以上是关于javascript 动画滚动到纯JS中的目标的主要内容,如果未能解决你的问题,请参考以下文章

javascript JS:滚动以触发动画

javascript js + html + css - 块的动画vith滚动

ScrollReveal-元素随页面滚动产生动画的js插件

跨浏览器 JavaScript(不是 jQuery...)滚动到顶部动画

跨浏览器 JavaScript(不是 jQuery...)滚动到顶部动画

JavaScript实现页面滚动到div区域div以动画方式出现