css 文字版无限滚动动画(附源码)

[复制链接]
七夏(UID:1) 发表于 2025-1-17 20:11:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

样式效果

图片

完整源码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>文字版无限滚动动画</title>
    <style>
        body {
            font-family: "Montserrat", sans-serif;
            background: #1e293b;
            color: #f8fafc;
            overflow: hidden;
        }

        .app {
            min-width: 100vw;
            min-height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-direction: column;
        }

        header {
            display: flex;
            flex-direction: column;
            align-items: center;
            margin: 1rem;
            text-align: center;
        }

        header h1 {
            font-weight: 600;
            font-size: 2rem;
            margin-bottom: 0.5rem;
        }

        @media (min-width: 768px) {
            header h1 {
                font-size: 3rem;
            }
        }

        header p {
            color: #94a3b8;
            margin-bottom: 0.5rem;
        }

        header a {
            color: #7393c1;
        }

        .tag-list {
            width: 30rem;
            max-width: 90vw;
            display: flex;
            flex-shrink: 0;
            flex-direction: column;
            gap: 1rem 0;
            position: relative;
            padding: 1.5rem 0;
            overflow: hidden;
        }

        .loop-slider .inner {
            display: flex;
            width: fit-content;
            animation-name: loop;
            animation-timing-function: linear;
            animation-iteration-count: infinite;
            animation-direction: var(--direction);
            animation-duration: var(--duration);
        }

        .tag {
            display: flex;
            align-items: center;
            gap: 0 0.2rem;
            color: #e2e8f0;
            font-size: 0.9rem;
            background-color: #334155;
            border-radius: 0.4rem;
            padding: 0.7rem 1rem;
            margin-right: 1rem;
            box-shadow: 0 0.1rem 0.2rem rgba(0, 0, 0, 0.2), 0 0.1rem 0.5rem rgba(0, 0, 0, 0.3), 0 0.2rem 1.5rem rgba(0, 0, 0, 0.4);
        }

        .tag span {
            font-size: 1.2rem;
            color: #64748b;
        }

        .fade {
            pointer-events: none;
            background: linear-gradient(90deg, #1e293b, transparent 30%, transparent 70%, #1e293b);
            position: absolute;
            inset: 0;
        }

        @keyframes loop {
            0% {
                transform: translateX(0);
            }

            100% {
                transform: translateX(-50%);
            }
        }
    </style>
</head>

<body>
    <div class="app">
        <div class="tag-list">
            <div class="loop-slider" style="--duration:15951ms; --direction:normal;">
                <div class="inner">
                    <div class="tag"><span>#</span> JavaScript</div>
                    <div class="tag"><span>#</span> HTML</div>
                    <div class="tag"><span>#</span> Typescript</div>
                    <div class="tag"><span>#</span> Node.js</div>
                    <div class="tag"><span>#</span> SVG</div>
                    <!-- 重复内容 循环-->
                    <div class="tag"><span>#</span> JavaScript</div>
                    <div class="tag"><span>#</span> HTML</div>
                    <div class="tag"><span>#</span> Typescript</div>
                    <div class="tag"><span>#</span> Node.js</div>
                    <div class="tag"><span>#</span> SVG</div>
                </div>
            </div>
            <div class="loop-slider" style="--duration:16638ms; --direction:reverse;">
                <div class="inner">
                    <div class="tag"><span>#</span> animation</div>
                    <div class="tag"><span>#</span> WebRTC</div>
                    <div class="tag"><span>#</span> CSS</div>
                    <div class="tag"><span>#</span> React</div>
                    <div class="tag"><span>#</span> Vue</div>
                    <!-- 重复内容 -->
                    <div class="tag"><span>#</span> animation</div>
                    <div class="tag"><span>#</span> WebRTC</div>
                    <div class="tag"><span>#</span> CSS</div>
                    <div class="tag"><span>#</span> React</div>
                    <div class="tag"><span>#</span> Vue</div>
                </div>
            </div>
            <div class="fade"></div>
        </div>
    </div>

</body>

</html>
小时候,看腻了农村的牛和马,长大后,来到了城里,才知道原来到处都是牛马!
全部回复0 显示全部楼层
暂无回复,精彩从你开始!

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于楼主

管理员
  • 主题

    1072
  • 回答

    437
  • 积分

    2970
虚位以待,此位置招租
虚位以待,此位置招租

商务推广

    此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租
最新热评 加载中...