当前位置:首页 > JavaScript

js实现一秒滚动的效果

2026-04-05 03:53:21JavaScript

JavaScript 实现平滑滚动效果

使用 window.scrollTo 方法结合 behavior: 'smooth' 实现平滑滚动:

window.scrollTo({
  top: 1000,
  behavior: 'smooth'
});

定时滚动实现每秒滚动

通过 setInterval 实现每秒自动滚动一定距离:

let scrollPosition = 0;
const scrollInterval = setInterval(() => {
  scrollPosition += 100;
  window.scrollTo({
    top: scrollPosition,
    behavior: 'smooth'
  });

  if (scrollPosition >= document.body.scrollHeight) {
    clearInterval(scrollInterval);
  }
}, 1000);

使用 CSS 平滑滚动

在 CSS 中设置全局滚动行为:

html {
  scroll-behavior: smooth;
}

滚动到指定元素

滚动到页面中的特定元素:

document.getElementById('target-element').scrollIntoView({
  behavior: 'smooth'
});

自定义缓动函数

实现自定义缓动效果的滚动:

function smoothScrollTo(target, duration) {
  const start = window.pageYOffset;
  const distance = target - start;
  let startTime = null;

  function animation(currentTime) {
    if (startTime === null) startTime = currentTime;
    const timeElapsed = currentTime - startTime;
    const run = easeInOutQuad(timeElapsed, start, distance, duration);
    window.scrollTo(0, run);
    if (timeElapsed < duration) requestAnimationFrame(animation);
  }

  function easeInOutQuad(t, b, c, d) {
    t /= d/2;
    if (t < 1) return c/2*t*t + b;
    t--;
    return -c/2 * (t*(t-2) - 1) + b;
  }

  requestAnimationFrame(animation);
}

smoothScrollTo(1000, 1000);

注意事项

确保滚动内容高度足够,避免在页面底部继续滚动。

考虑移动设备兼容性,测试不同浏览器的平滑滚动支持情况。

js实现一秒滚动的效果

清除定时器防止内存泄漏,特别是在组件卸载时。

标签: 效果js
分享给朋友:

相关文章

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现图片滚动效果

js实现图片滚动效果

使用CSS动画实现图片滚动 通过CSS的@keyframes和animation属性实现无缝滚动效果。将图片容器设置为横向排列,通过动画平移位置。 <style> .scroll-c…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(f…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 c…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…