javascript 光滑的滚动顶部

Posted

tags:

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

function scrollToSmoothly(pos, time) {
         if (typeof pos !== 'number') {
            pos = parseFloat(pos);
         }
         if (isNaN(pos)) {
            console.warn('Position must be a number or a numeric String.');
            throw 'Position must be a number';
         }
         if (pos < 0 || time < 0) {
            return;
         }
         let currentPos = window.scrollY || window.screenTop;
         let start = null;
         time = time || 500;
         window.requestAnimationFrame(function step(currentTime) {
            start = !start ? currentTime : start;
            if (currentPos < pos) {
               let progress = currentTime - start;
               window.scrollTo(
                  0,
                  ((pos - currentPos) * progress) / time + currentPos
               );
               if (progress < time) {
                  window.requestAnimationFrame(step);
               } else {
                  window.scrollTo(0, pos);
               }
            } else {
               let progress = currentTime - start;
               window.scrollTo(
                  0,
                  currentPos - ((currentPos - pos) * progress) / time
               );
               if (progress < time) {
                  window.requestAnimationFrame(step);
               } else {
                  window.scrollTo(0, pos);
               }
            }
         });
      }

以上是关于javascript 光滑的滚动顶部的主要内容,如果未能解决你的问题,请参考以下文章

javascript 锚标签链接光滑滚动

使用 JavaScript 滚动到页面顶部?

Javascript 滚动顶部

使用 JavaScript/jQuery 滚动到 DIV 的顶部?

javascript 滚动偏移上的导航顶部动画

javascript 滚动顶部