SOURCE

console 命令行工具 X clear

                    
>
console
<!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-container {
      width: 100%;
      height: 50px;
      overflow: hidden; /* 隐藏超出部分 */
      background-color: #282c34;
      display: flex;
      align-items: center;
      padding: 0 10px;
      position: relative;
    }

    .marquee-content {
      white-space: nowrap;
      color: #fff;
      font-size: 30px;
      transition: transform 1s ease-out;
      will-change: transform; /* 提示浏览器优化 */
    }

    /* 跑马灯效果 */
    .marquee {
      animation: marquee 10s linear infinite;
    }

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

    /* 鼠标移入停止动画 */
    .marquee-container:hover .marquee-content {
      animation-play-state: paused;
    }
  </style>
</head>
<body>

  <div class="marquee-container" id="marquee-container">
    <div class="marquee-content" id="marquee-content">
      欢迎来到跑马灯效果!这是一个滚动的文本内容,横向溢出!鼠标移入时停止滚动。
    </div>
  </div>

  <script>
    window.addEventListener('load', function() {
      const container = document.getElementById('marquee-container');
      const content = document.getElementById('marquee-content');

      // 检查内容是否溢出
      if (content.offsetWidth > container.offsetWidth) {
        content.classList.add('marquee');  // 如果溢出,添加跑马灯效果
      }
    });

    // 可选:监听窗口大小变化,动态调整动画效果
    window.addEventListener('resize', function() {
      const container = document.getElementById('marquee-container');
      const content = document.getElementById('marquee-content');

      if (content.offsetWidth > container.offsetWidth) {
        content.classList.add('marquee');
      } else {
        content.classList.remove('marquee');
      }
    });
  </script>

</body>
</html>