CSS实现文本和图片无限滚动动画

Demo图如下:
在这里插入图片描述

 <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: 'Poppins', sans-serif;
        }

        body {
            min-height: 100vh;
            background-color: rgb(11, 11, 11);
            color: #fff;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }


        .scroll {
            display: flex;
            width: 700px;
            overflow: hidden;
            mask-image: linear-gradient(90deg, transparent, #fff 20%, #fff 80%, transparent);
            -webkit-mask-image: linear-gradient(90deg, transparent, #fff 20%, #fff 80%, transparent);
        }

        .scroll>div span {
            display: inline-block;
            margin: 10px;
            padding: 5px 10px;
            background-color: #333;
            border-radius: 5px;
            letter-spacing: 0.2em;
            text-transform: uppercase;
            /* 重置字体大小 */
            font-size: 16px;
            cursor: pointer;
            transition: background-color 0.5s;
        }

        .scroll>div span:hover {
            background-color: #f152ec;
        }

        .img-box .img {
            max-width: 150px;
            cursor: pointer;
            transition: filter 0.5s;
            margin: 10px;
        }

        .img-box .img:hover {
            filter: grayscale(1);
        }
        .scroll>div {
            /* 解决空白间隙将字体设置为0 */
            font-size: 0;
            white-space: nowrap;
            animation: animate var(--time) linear infinite;
            animation-delay: calc(var(--time) * -1);
        }
		/*向右移动*/
        @keyframes animate {
            0% {
                transform: translateX(-100%);
            }

            100% {
                transform: translateX(100%);
            }
        }
        /*向左移动*/
		 /* @keyframes animate {
            0% {
                transform: translateX(100%);
            }

            100% {
                transform: translateX(-100%);
            }
        } */

        .scroll>div:nth-child(2) {
            animation: animate2 var(--time) linear infinite;
            animation-delay: calc(var(--time) / -2);
        }
		 /*向右移动*/
        @keyframes animate2 {
            0% {
                transform: translateX(-200%);
            }

            100% {
                transform: translateX(0);
            }
        }
         /*向左移动*/
		/* @keyframes animate2 {
            0% {
                transform: translateX(0);
            }

            100% {
                transform: translateX(-200%);
            }
        } */
        .scroll:hover>div {
            animation-play-state: paused;
        }
    </style>
<div class="scroll" style="--time: 20s">
        <div>
            <span>HTML</span>
            <span>CSS</span>
            <span>JavaScript</span>
            <span>Vue</span>
            <span>React</span>
            <span>Figma</span>
            <span>Photoshop</span>
        </div>

        <div>
            <span>HTML</span>
            <span>CSS</span>
            <span>JavaScript</span>
            <span>Vue</span>
            <span>React</span>
            <span>Figma</span>
            <span>Photoshop</span>
        </div>
    </div>

    <div class="scroll" style="--time: 30s">
        <div>
            <span>HTML</span>
            <span>CSS</span>
            <span>JavaScript</span>
            <span>Vue</span>
            <span>React</span>
            <span>Figma</span>
            <span>Photoshop</span>
        </div>

        <div>
            <span>HTML</span>
            <span>CSS</span>
            <span>JavaScript</span>
            <span>Vue</span>
            <span>React</span>
            <span>Figma</span>
            <span>Photoshop</span>
        </div>
    </div>

    <div class="scroll" style="--time: 10s">
        <div>
            <span>HTML</span>
            <span>CSS</span>
            <span>JavaScript</span>
            <span>Vue</span>
            <span>React</span>
            <span>Figma</span>
            <span>Photoshop</span>
        </div>

        <div>
            <span>HTML</span>
            <span>CSS</span>
            <span>JavaScript</span>
            <span>Vue</span>
            <span>React</span>
            <span>Figma</span>
            <span>Photoshop</span>
        </div>
    </div>

    <div class="scroll" style="--time: 35s">
        <div>
            <span>HTML</span>
            <span>CSS</span>
            <span>JavaScript</span>
            <span>Vue</span>
            <span>React</span>
            <span>Figma</span>
            <span>Photoshop</span>
        </div>

        <div>
            <span>HTML</span>
            <span>CSS</span>
            <span>JavaScript</span>
            <span>Vue</span>
            <span>React</span>
            <span>Figma</span>
            <span>Photoshop</span>
        </div>
    </div>
    <div class="scroll img-box" style="--time:25s">
        <div>
            <div class="img" style="display:inline-block;background:url(./imgs/img1.jpeg) no-repeat center/100% 100%;width: 150px;height:100px;"></div>
            <div class="img" style="display:inline-block;background:url(./imgs/img2.jpeg) no-repeat center/100% 100%;width: 150px;height:100px;"></div>
            <div class="img" style="display:inline-block;background:url(./imgs/img1.jpeg) no-repeat center/100% 100%;width: 150px;height:100px;"></div>
            <div class="img" style="display:inline-block;background:url(./imgs/img2.jpeg) no-repeat center/100% 100%;width: 150px;height:100px;"></div>
            <div class="img" style="display:inline-block;background:url(./imgs/img1.jpeg) no-repeat center/100% 100%;width: 150px;height:100px;"></div>
            <div class="img" style="display:inline-block;background:url(./imgs/img2.jpeg) no-repeat center/100% 100%;width: 150px;height:100px;"></div>
            <div class="img" style="display:inline-block;background:url(./imgs/img1.jpeg) no-repeat center/100% 100%;width: 150px;height:100px;"></div>
            <div class="img" style="display:inline-block;background:url(./imgs/img2.jpeg) no-repeat center/100% 100%;width: 150px;height:100px;"></div>
        </div>
        <div>
            <div class="img" style="display:inline-block;background:url(./imgs/img1.jpeg) no-repeat center/100% 100%;width: 150px;height:100px;"></div>
            <div class="img" style="display:inline-block;background:url(./imgs/img2.jpeg) no-repeat center/100% 100%;width: 150px;height:100px;"></div>
            <div class="img" style="display:inline-block;background:url(./imgs/img1.jpeg) no-repeat center/100% 100%;width: 150px;height:100px;"></div>
            <div class="img" style="display:inline-block;background:url(./imgs/img2.jpeg) no-repeat center/100% 100%;width: 150px;height:100px;"></div>
            <div class="img" style="display:inline-block;background:url(./imgs/img1.jpeg) no-repeat center/100% 100%;width: 150px;height:100px;"></div>
            <div class="img" style="display:inline-block;background:url(./imgs/img2.jpeg) no-repeat center/100% 100%;width: 150px;height:100px;"></div>
            <div class="img" style="display:inline-block;background:url(./imgs/img1.jpeg) no-repeat center/100% 100%;width: 150px;height:100px;"></div>
            <div class="img" style="display:inline-block;background:url(./imgs/img2.jpeg) no-repeat center/100% 100%;width: 150px;height:100px;"></div>
        </div>
    </div>
    </div>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/344357.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024 年值得收藏的 6 大 iPad 恢复软件

众所周知&#xff0c;数据丢失是 iOS 用户的普遍问题。由于意外删除、软件更新、被盗等多种原因&#xff0c;您可能会丢失重要文件。通过备份&#xff0c;您可以轻松找回 iPad上丢失的文件。但是&#xff0c;当您没有可用的备份时&#xff0c;麻烦就开始了。那么&#xff0c;如…

如何高效挖掘Web漏洞?

简介 SRC漏洞平台&#xff1a;安全应急响应中心&#xff08;SRC, Security Response Center&#xff09;&#xff0c;是企业用于对外接收来自用户发现并报告的产品安全漏洞的站点。说白了&#xff0c;就是连接白帽子和企业的平台&#xff0c;你去合法提交漏洞给他们&#xff0…

数据结构之树和森林

数据结构之树和森林 1、树的存储结构2、树和森林的遍历2.1、树的遍历2.2、森林的遍历 3、树、森林和二叉树之间的相互转换 数据结构是程序设计的重要基础&#xff0c;它所讨论的内容和技术对从事软件项目的开发有重要作用。学习数据结构要达到的目标是学会从问题出发&#xff0…

一键拥有你的GPT4

这几天我一直在帮朋友升级ChatGPT&#xff0c;现在已经可以闭眼操作了哈哈&#x1f61d;。我原本以为大家都已经用上GPT4&#xff0c;享受着它带来的巨大帮助时&#xff0c;但结果还挺让我吃惊的&#xff0c;还是有很多人仍苦于如何进行升级。所以就想着写篇教程来教会大家如何…

记录xxl-job重复执行引发业务问题

业务问题描述 1.创建运单&#xff0c;发现重复&#xff08;同一个车架号两条记录&#xff09; 2.通知重复反馈&#xff0c;A系统读取中间表状态为未处理数据&#xff0c;推送到B系统 原因分析 1.以上两个问题都是xxljob定时执行的 2.通过日志分析&#xff0c;读取中间表数…

pcl之滤波器(一)

pcl滤波器 pcl一共是有十二个主要模块&#xff0c;详细了解可以查看官网。https://pcl.readthedocs.io/projects/tutorials/en/latest/#basic-usage 今天学习一下pcl的滤波器模块。 滤波器模块&#xff0c;官网一共是提供了6个例程&#xff0c;今天先来看第一第二个。 直通…

01 Aras Innovator二次开发说明

在进行Aras Innovator二次开发之前&#xff0c;需要先了解Aras的服务器架构以及相关的方法论。 了解这部分内容后&#xff0c;有助于我们进行二次开发。 一. 服务器架构 参考下表&#xff1a; Aras Innovator为B/S架构&#xff0c;支持主流的浏览器(IE Edge,Firefox,Google)…

Labview for循环精讲

本文详细介绍Labview中For循环的使用方法&#xff0c;从所有细节让你透彻的看明白For循环是如何使用的&#xff0c;如果有帮助的话记得点赞加关注~ 1. For循环结构 从最简单的地方讲起&#xff0c;一个常用的for循环结构是由for循环结构框图、循环次数、循环计数(i)三部分组成…

Linux版本下载Centos操作

目录 一、Centos7 二、下载Centos7镜像 三、下载Centos7 买了个硬件安装裸机&#xff08;一堆硬件&#xff09; 把安装盘放到虚拟机里面&#xff0c;给机器加电 配置设置 ​编辑 网络配置 开启网络功能 四、安装linux客户端 Xshell是什么 Xshell使用&#xff08;连接…

构建一个安全可靠的身份认证中心和资源服务中心:SpringSecurity+OAuth2.0的完美结合

目录 1、引言 1.1 身份认证和授权的重要性 1.2 SpringSecurity和OAuth2.0的概述 2、架构设计 2.1 组件概述 2.2 身份认证中心的设计 2.3 资源服务中心的设计 3、身份认证中心的实现 3.1 用户管理 3.2 登录认证流程 3.3 令牌生成和管理 4、资源服务中心的实现 4.1 …

新版idea创建spring boot项目

目录 前言 汉化教程 项目模板初始化 1.点击新建项目 2.配置初始化信息 3.初始依赖选择 配置Maven 1.打开maven设置 2.重写maven配置文件 3.选择你创建的配置文件 4.重启项目 spring boot配置并测试 1.修改配置文件后缀 2.启动项目 3.编写测试控制类 4.重启项目…

idea引入jar包作为maven

1.引入jar包至项目中 2.配置当前项目的maven&#xff08;如果只想在本机能运行的话&#xff0c;到这一步就够了&#xff0c;后面pom配置也不需要这一步&#xff09; 3.配置文件的maven依赖路径 这里的 groupId 就是你引入原包的包路径&#xff0c;artifactId、version都是随…

【动态规划】【字符串】【C++算法】940. 不同的子序列 II

作者推荐 【动态规划】【广度优先搜索】【状态压缩】847 访问所有节点的最短路径 本文涉及知识点 动态规划汇总 LeetCode940. 不同的子序列 II 给定一个字符串 s&#xff0c;计算 s 的 不同非空子序列 的个数。因为结果可能很大&#xff0c;所以返回答案需要对 10^9 7 取…

企业如何用copilot?电通×Copilot:打破创意工作效率“天花板”

企业申请Azure OpenAI绿色通道 →记得评论私信~还可加入试用交流群~ 电通集团拥有着120年的历史、汇聚了七万多名精英&#xff0c;是全球顶级的创意公司之一。随着新兴传播渠道的不断涌现&#xff0c;电通的客户们面临着内容需求的挑战。好消息是&#xff0c;微软Copilot为电通…

21.云原生之GitLab pipline语法(CI基础)

云原生专栏大纲 文章目录 gitlab-ci.yml 介绍GitLab中语法检测gitlab-ci.yml 语法job定义作业before_script和after_scriptstages定义阶段tages指定runnerallow_failure运行失败when控制作业运行retry重试timeout超时parallel并行作业only & exceptrulescache 缓存cache:p…

路灯哪个牌子质量好?适合学生备考使用的台灯分享

落地台灯是一种常见的家居照明设备&#xff0c;通常由支架、灯头和灯罩组成。其特点是可以放置在地面上&#xff0c;提供直接的照明效果&#xff0c;适用于客厅、卧室、书房等各种生活空间。落地台灯的设计风格多样&#xff0c;可以选择简约现代、北欧风格、复古风格等等&#…

在PyCharm中安装GitHub Copilot插件,login之后报出如下错误:

Sign in failed. Reason: Request signInInitiate failed with message: connect ECONNABORTED 20.205.243.166:443, request id: 7, error code: -32603 前提&#xff1a; 设置网址&#xff1a;https://github.com/settings/copilot&#xff0c;已设置为允许 或者&#xff1…

每日一题——LeetCode1313.解压缩编码列表

这么简单的题目要说的这么复杂 nums里每相邻的两个元素nums[i]、nums[j]为一对&#xff0c;nums[i]表示nums[j]的次数 var decompressRLElist function(nums) {let res[]for(let i0,j1;j<nums.length-1;i2,j2){while(nums[i]--){res.push(nums[j])}}return res }; 消耗时…

K8S四层代理Service-02

Service的四种类型使用 ClusterIP使用示例Pod里使用service的服务名访问应用 NodePort使用示例 ExternalName使用示例 LoadBalancer K8S支持以下4种Service类型&#xff1a;ClusterIP、NodePort、ExternalName、LoadBalancer 以下是使用4种类型进行Service创建&#xff0c;应对…

shell脚本——变量

目录 一、变量基础 1、shell脚本的变量是什么 2、变量的作用 3、变量作用范围 3.1 临时设置 3.2 永久设置&#xff0c;需要在/etc/profile文件里添加 4、删除变量 二、变量的类型 1、自定义变量 1.1 命令要求 1.2 定义新的变量 1.3 查看定义的变量的值 1.4 赋值时使…