当前位置:首页 > JavaScript

scrolltext js实现

2026-03-14 02:13:27JavaScript

使用 CSS 和 JavaScript 实现滚动文本

通过 CSS 的 animation@keyframes 结合 JavaScript 动态控制,可以实现平滑的滚动文本效果。

<div class="scroll-container">
  <div class="scroll-text">这是一段需要水平滚动的文本内容,可以根据需求调整长度。</div>
</div>
.scroll-container {
  width: 300px;
  overflow: hidden;
  white-space: nowrap;
  border: 1px solid #ccc;
}

.scroll-text {
  display: inline-block;
  animation: scroll 10s linear infinite;
}

@keyframes scroll {
  0% { transform: translateX(100%); }
  100% { transform: translateX(-100%); }
}

纯 JavaScript 实现动态滚动

通过定时器动态修改元素的 scrollLeft 属性实现滚动效果:

const container = document.querySelector('.scroll-container');
const text = document.querySelector('.scroll-text');
let scrollPos = 0;

function scrollHorizontally() {
  scrollPos += 1;
  container.scrollLeft = scrollPos;

  if (scrollPos >= text.scrollWidth - container.clientWidth) {
    scrollPos = 0;
  }

  requestAnimationFrame(scrollHorizontally);
}

scrollHorizontally();

实现 Marquee 标签的现代替代方案

使用 CSS Transform 实现高性能滚动:

.marquee {
  width: 100%;
  overflow: hidden;
  position: relative;
}

.marquee-content {
  display: inline-block;
  white-space: nowrap;
  will-change: transform;
}
const marquee = document.querySelector('.marquee');
const content = document.querySelector('.marquee-content');
const contentWidth = content.scrollWidth;

function animateMarquee() {
  const progress = (performance.now() / 2000) % 1;
  const translateX = -progress * contentWidth;

  content.style.transform = `translateX(${translateX}px)`;
  requestAnimationFrame(animateMarquee);
}

animateMarquee();

实现垂直滚动效果

修改 CSS 关键帧即可实现垂直方向滚动:

.scroll-text.vertical {
  animation: scroll-vertical 8s linear infinite;
}

@keyframes scroll-vertical {
  0% { transform: translateY(100%); }
  100% { transform: translateY(-100%); }
}

响应式滚动文本

通过 JavaScript 检测容器宽度动态调整速度:

scrolltext js实现

function responsiveScroll() {
  const containerWidth = container.clientWidth;
  const speed = containerWidth / 50; // 根据宽度调整速度

  scrollPos += speed;
  container.scrollLeft = scrollPos;

  if (scrollPos >= text.scrollWidth) {
    scrollPos = -containerWidth;
  }

  requestAnimationFrame(responsiveScroll);
}

标签: scrolltextjs
分享给朋友:

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: functio…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…