花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 11|回复: 4

纯CSS实现多图无限平滑循环滚动(通用方法)

[复制链接]
  • TA的每日心情
    奋斗
    2026-8-5 12:42
  • 签到天数: 1891 天

    [LV.Master]伴坛终老

    3298

    主题

    13万

    回帖

    29万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

    发表于 2026-8-5 12:58 | 显示全部楼层 |阅读模式

    请马上登录,朋友们都在花潮里等着你哦:)

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

    x

    核心原理解释(以水平方向滚动为例):

    1. HTML标签结构:父容器 + 子容器(子容器装载双份相同的图片标签)
    2. 父容器固定宽高,相对定位
    3. 子容器绝对定位,高度100%,设置为不折行(white-space: nowrap;);
    4. 图片高度100%,需要双份相同的图片标签;
    5. 子容器 animation 属性无限循环运行关键帧动画;
    6. 关键帧动画使用 transform: translateX(-50%) 作为移动终点(子容器移动一半时,后续相同的图片标签跟在后面形成衔接而非断档——具体情况是与下一轮开始瞬间的图片重叠,达成无缝交替效果)。

    应用实例:

    <style>
        .pa {
            width: 1024px;
            height: 600px;
            border: 8px dotted gray;
            overflow: hidden; /* 重要 :屏蔽溢出 */
            position: relative; /* 重要 :相对定位 */
            margin: auto;
            --state: running; /* 动画开关 */
        }
        .pa:hover {
            --state: paused; /* 鼠标指针移动到 .pa 时暂停动画 */
        }
        .son {
            position: absolute; /* 重要 :绝对定位 */
            height: 100%; /* 百分百高度 */
            white-space: nowrap; /* 重要 :不折行,水平伸展 */
            /* 动画周期时长应根据图片水平衔接的长度调整 */
            animation: scroll 28s linear infinite var(--state);
        }
        .son img {
            height: 100%; /* 图片高度与容器一致(宽度自适应)*/
            margin: 0 6px; /* 图片之间的左右距离 */
        }
        @keyframes scroll {
            to { transform: translateX(-50%); }
        }
    </style>
    
    <div class="pa">
        <div class="son">
            <!-- 双份一模一样的图片标签 -->
            <img src="https://638183.freep.cn/638183/Pic/38/3-1.jpg" load="lazy" alt="" />
            <img src="https://638183.freep.cn/638183/Pic/38/3-2.jpg" load="lazy" alt="" />
            <img src="https://638183.freep.cn/638183/Pic/38/3-3.jpg" load="lazy" alt="" />
            <img src="https://638183.freep.cn/638183/Pic/38/3-4.jpg" load="lazy" alt="" />
            <img src="https://638183.freep.cn/638183/Pic/38/3-5.jpg" load="lazy" alt="" />
            
            <img src="https://638183.freep.cn/638183/Pic/38/3-1.jpg" load="lazy" alt="" />
            <img src="https://638183.freep.cn/638183/Pic/38/3-2.jpg" load="lazy" alt="" />
            <img src="https://638183.freep.cn/638183/Pic/38/3-3.jpg" load="lazy" alt="" />
            <img src="https://638183.freep.cn/638183/Pic/38/3-4.jpg" load="lazy" alt="" />
            <img src="https://638183.freep.cn/638183/Pic/38/3-5.jpg" load="lazy" alt="" />
        </div>
    </div>
    <p style="text-align: center;">鼠标指针移动到上面方框可暂停动画</p>
        

    【说明】

    1. img标签 load="lazy" 属性设置意为图片懒加载,这对需要展示大量的图片时有节能作用:图片尚未进入屏幕可视区域时暂时不予加载,直到它们移动到可视区域;
    2. 需要自左向右滚动图片的,改造关键帧动画如下:
      @keyframes scroll {
          from { transform: translateX(-50%); }
          to { transform: translateX(0%); }
      }
      
    3. 需要图片在垂直方向上滚动的,可参照本示例做些必要的改造。

    评分

    参与人数 1威望 +30 金钱 +60 经验 +30 收起 理由
    梦江南 + 30 + 60 + 30 匠心独运,细节精致入微!

    查看全部评分

  • TA的每日心情
    无聊
    2026-8-5 12:41
  • 签到天数: 286 天

    [LV.8]以坛为家I

    45

    主题

    819

    回帖

    5484

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    发表于 2026-8-5 14:06 | 显示全部楼层
    收藏。学习。谢谢马老师!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2026-8-5 11:17
  • 签到天数: 801 天

    [LV.10]以坛为家III

    568

    主题

    3万

    回帖

    9万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪缤纷心情心曲飞扬花好月圆飞龙在天音画大师天籁妙音共看流星风雨同行我心永远喜乐安康花潮贵宾

    发表于 2026-8-5 14:11 | 显示全部楼层
    黑黑老师下午嚎!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2026-8-5 11:17
  • 签到天数: 801 天

    [LV.10]以坛为家III

    568

    主题

    3万

    回帖

    9万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪缤纷心情心曲飞扬花好月圆飞龙在天音画大师天籁妙音共看流星风雨同行我心永远喜乐安康花潮贵宾

    发表于 2026-8-5 14:16 | 显示全部楼层
    这多张图片移动的代码很好,图片只限制高度不限宽度还设置了好看边框,可以改变移动方向。太赞了!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2026-8-5 11:17
  • 签到天数: 801 天

    [LV.10]以坛为家III

    568

    主题

    3万

    回帖

    9万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪缤纷心情心曲飞扬花好月圆飞龙在天音画大师天籁妙音共看流星风雨同行我心永远喜乐安康花潮贵宾

    发表于 2026-8-5 14:18 | 显示全部楼层
    学习了
    回复

    使用道具 举报

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

    本版积分规则

    小黑屋|手机版|Archiver|服务支持:DZ动力|huachaowang.com Inc. ( 蜀ICP备17032287号-1 )

    GMT+8, 2026-8-5 14:22 , Processed in 0.132616 second(s), 26 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表