原生HTML实现marquee向上滚动效果

实现原理:借助CSS3中animation动画以及原生JS克隆API

html 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>文字向上滚动效果</title>
    <style>
      .marquee-view {
        width: fit-content;
        height: 300px;
        background-color: #000;
        overflow: hidden;
      }

      .row {
        display: flex;
        justify-content: space-between;
        line-height: 1.05;
        color: #ffffff;
        padding: 15px;
        cursor: pointer;
      }

      .marquee {
        animation: move 5s linear infinite;
      }

      @keyframes move {
        0% {
          transform: translateY(0);
        }
        100% {
          transform: translateY(-50%);
        }
      }
    </style>
  </head>
  <body>
    <div class="marquee-view">
      <div class="marquee">
        <div class="row">
          <span>我是滚动文字</span>
        </div>
        <div class="row">
          <span>我是滚动文字</span>
        </div>
        <div class="row">
          <span>我是滚动文字</span>
        </div>
        <div class="row">
          <span>我是滚动文字</span>
        </div>
        <div class="row">
          <span>我是滚动文字</span>
        </div>
        <div class="row">
          <span>我是滚动文字</span>
        </div>
        <div class="row">
          <span>我是滚动文字</span>
        </div>
      </div>
    </div>
  </body>

  <script>
    const marquee = document.querySelectorAll(".marquee-view .marquee");
    marquee.forEach((item) => {
      var rows = item.children;
      // 克隆子节点并将其附加到 .marquee 元素中
      Array.from(rows).forEach((row) => {
        var clone = row.cloneNode(true);
        item.appendChild(clone);
      });
    });
  </script>
</html>

实现效果:

相关推荐
精益数智工坊5 分钟前
红牌作战是什么?红牌作战的实施步骤与核心要点
大数据·运维·前端·人工智能·精益工程
techdashen11 分钟前
Cloudflare HTML 解析器的十年演化史(一)
前端·html
ZC跨境爬虫19 分钟前
移动端爬虫工具Fiddler完整配置流程:PC+安卓模拟器全覆盖,零基础一次配置成功
android·前端·爬虫·测试工具·fiddler
GISer_Jing23 分钟前
前端视角:B端传统配置化现状与AI冲击趋势
前端·人工智能·ai编程
课灵_klhubs27 分钟前
课灵h5p-3D 模型 (3D Model)教程
前端·3d·课程设计·教程·课灵·h5p
倾颜36 分钟前
接入 MCP 之后,我如何让 Skill 稳定消费 Tool / Resource / Prompt
前端·next.js·mcp
小赵同学WoW37 分钟前
BroadCast Channel() 浏览器跨标签页通信的实现方式之一
前端·浏览器
\xin37 分钟前
pikachu自编exp,xss之盲打,过滤,htmlspecialchars,href,js
前端·xss
ZC跨境爬虫1 小时前
前端实战复盘:从零完成Apple中国大陆官网UI第一阶段全量静态复刻
前端·css·ui·html
苏一恒1 小时前
MP4 在 <video> 里,必须全量下载才能起播吗?—— moov、Range 与被误解的 FastStart
前端