当前位置:首页 > 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 属性实现滚动效果:

scrolltext js实现

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 实现高性能滚动:

scrolltext js实现

.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 检测容器宽度动态调整速度:

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实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 jQ…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现论坛

js实现论坛

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