CSS动画:多动画同步播放或非同步播放

news2024/11/16 17:27:06
前言
本篇在讲什么

在CSS样式表现动画的基础上的拓展
本篇适合什么

适合初学H5的小白
适合初学CSS的小白
适合入门的前端程序

本篇需要什么

Htmlcss语法有简单认知
Node.js(博主v18.13.0)的开发环境
Npm(博主v8.19.3)的开发环境
依赖VS code编辑器

本篇的特色

具有全流程的图文教学
重实践,轻理论,快速上手
提供全流程的源码内容


★提高阅读体验★

👉 ♠ 一级标题 👈

👉 ♥ 二级标题 👈

👉 ♣ 三级标题 👈

👉 ♦ 四级标题 👈


目录

  • ♠ 多动画同时播放
    • ♥ 同步播放多个动画
    • ♥ 非同步播放
  • ♠ 推送
  • ♠ 结语


♠ 多动画同时播放

最近有点需求,需要对页面上一个组件同时去播放很多种动画、透明缩放之类的,所以就在之前的基础上多补充一些东西,对动画播放还不清楚的请跳转前文

CSS动画:transition触发动画和animation非触发动画


♥ 同步播放多个动画

我们先看看效果,让一个按钮同时旋转、缩放、透明度变化

在这里插入图片描述

我们在看一下完整代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        .btn{
            width: 200px;
      		height: 40px;
            background-color: #4dccc6;
            margin-top: 20%;
            margin-left: 45%;
            animation: test 1s infinite;
        }
        @keyframes test{
            0% {
          		opacity:0;
                scale: 0;
                transform: rotate(0deg);
            }
            100% {
                opacity:1;
                scale: 1;
                transform: rotate(360deg);
            }
        }

    </style>
</head>
<body>
    <div>
        <button class="btn">测试按钮</button>
    </div>
</body>
</html>

相当简单的一部分代码,我们挑重点来讲

  • 使用@keyframes声明关键帧动画
  • 在关键帧内部设置进度0%100%
  • 在进度内部设置对应的属性变换opacityscalerotate

这样子写没问题,但是缺点就是所有的动画都是同步播放的,如果想让其中一种变换延迟或者时间改变是没有办法的


♥ 非同步播放

现在我们有个需求,依旧是对按钮设置动画,只不过在第一遍出现的时候按钮不会旋转,我们依旧先看一下效果

在这里插入图片描述

我们在看一下修改过后的代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        .btn{
            width: 200px;
      		height: 40px;
            background-color: #4dccc6;
            animation: test1 1s infinite;
        }
        .main
        {
            width: 200px;
      		height: 40px;
            margin-top: 20%;
            margin-left: 45%;
            animation: test2 1s 1s infinite;
        }
        @keyframes test1{
            0% {
          		opacity:0;
                scale: 0;
            }
            100% {
                opacity:1;
                scale: 1;
            }
        }
        @keyframes test2{
            0% {
                transform: rotate(0deg);
            }
            100% {
                transform: rotate(360deg);
            }
        }

    </style>
</head>
<body>
    <div class="main">
        <button class="btn">测试按钮</button>
    </div>
</body>
</html>

相比于上一版的代码,我们稍作了修改,很显然再把同一部分的动画代码写在一个@keyframes内已经不合适了

我们针对btn的父组件main执行了动画test2,并延时了1s播放,动画仅执行旋转效果

我们针对btn的自身执行了动画test1,动画执行缩放和透明度变化

如此一来我们就实现了非同步播放的效果,由此拓展可以达到多种的播放效果


♠ 推送

  • Github
https://github.com/KingSun5

♠ 结语

若是觉得博主的文章写的不错,不妨关注一下博主,点赞一下博文,另博主能力有限,若文中有出现什么错误的地方,欢迎各位评论指摘。

👉 本文属于原创文章,转载请评论留言,并在转载文章头部著名作者出处👈

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

impala内存超限

目录 一、背景 二、报错内容 三、解决办法 1.调参 2.简单粗暴 一、背景 impala shell执行SQL语句时报错 二、报错内容 Memory limit exceeded: Could not allocate memory while trying to increase reservation. 三、解决办法 1.调参 mem_limit参数&#xff1a;&…

ciscn 2023 初赛 pwn shell we go

ciscn 2023 初赛 pwn shell we go 这题go pwn&#xff0c;符号恢复就恢复很长时间了&#xff0c;网上的插件好多都没用 根着流程&#xff0c;可以看到这里有一个验证&#xff0c;以空格来分割&#xff0c;第一个参数会验证是否为nAcDsMicN 如果第一个参数验证通过&#xff0c…

Centos7 开启图形化界面 Linux安装VNC

环境: Centos7 windows连接&#xff1a;下载VNC Viewer 目录 VNC概述 VNC原理 一、检查是否安装过VNC 二、安装图形化界面 三、安装和配置VNC服务 四: 启动VNC及常用命令 五: VNC windos连接工具连接 VNC概述 VNC (Virtual Network Computing)是虚拟网络计算机的缩写…

如何零基础自学网络安全?

学前感言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发. 3.有时多 google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答. 4.遇到实在搞不懂的,可以先放放,以后再来解…

性能优化记录

您好&#xff0c;如果喜欢我的文章&#xff0c;可以关注我的公众号「量子前端」&#xff0c;将不定期关注推送前端好文~ 前言 最近零零散散的对刚接手的一个新项目做了一些优化&#xff0c;白屏、打包相关的内容都涉及到了&#xff0c;写一篇文章来记录一下。 白屏相关 DNS…

chatgpt赋能python:Python同一行语句之间的分隔

Python同一行语句之间的分隔 在Python中&#xff0c;同一行内的语句通常使用分号 ‘;’ 分隔开来。分号作为语句之间的分隔符&#xff0c;可以使我们在同一行内写多条语句&#xff0c;从而减少代码行数&#xff0c;提高代码可读性和可维护性。 分隔符和代码风格 在使用分号进…

[C++]基本知识与概念

C基础知识与概念 C与C基础C面向对象C STLC 内存管理C11新特性C linux编程I/O多路复用 前言 本文章适用于有一定C基础的新手同学快速掌握一些C的基本知识概念以及面试中可能会问的内容&#xff0c;如果你没有相应的基础学习又因为这篇文章缺少代码讲解所以可能会影响你的学习效率…

Mysql安装教程(windows)

本文主要讲解如何去安装使用Mysql 一、下载Mysql 1、官网在线下载 MySQL官网&#xff1a;https://www.mysql.com/downloads/ 下载版本&#xff1a;MySQL Installer for Window 2、云盘离线下载 https://pan.baidu.com/s/1dB7kFiwrKpF5W-5XPn2FeQ?pwdrvb9 提取码&#xff1a;…

【图像任务】Transformer系列.2

两篇改进Transformer结构的论文&#xff1a;MAN&#xff08;arXiv2022&#xff09;&#xff0c;ScalableViT&#xff08;ECCV2022&#xff09;. Multi-Scale Attention Network for Single Image Super-Resolution, arXiv2022 解读&#xff1a;【ARIXV2209】Multi-Scale Atten…

Java课程设计-学生管理系统《控制台版本》

博主介绍&#xff1a;✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

JavaEE(系列20) -- 网络编程之UDP和TCP套接字

目录 1. 网络编程 2. UDP网络编程 2.1 DatagramSocket API 2.2 DatagramPacket API 2.3 基于UDP实现的回显服务器 2.3.1 UDP服务器设计步骤 2.3.2 服务器代码 2.3.3 客户端代码 2.3.4 基于UDP写一个字典服务器 3. TCP网络编程 3.1 ServerSocketAPI 3.2 SocketAPI …

如何不出国一年内拿到加拿大女王大学金融硕士学位证书?

作为加拿大最好的公立大学之一&#xff0c;QueensUniversity位于安大略省的金斯顿市。最近&#xff0c;它在QS全球大学排名中跻身第209位&#xff0c;同时在加拿大的综合排名中名列第7位。这表明女王大学在学术研究和教育方面都有着出色的表现。Queens University坐落于安大略省…

分布式光伏发电远程监控系统

分布式光伏发电远程监控系统 项目背景 新能源、可再生能源接入电网是智能电网建设的重要组成&#xff0c;也是能源互联网发展的基础。近年来&#xff0c;太阳能光伏发电技术快速发展&#xff0c;光伏发电并网对配电网的影响也不断加深。电网调度人员需要人工参与光伏发电站的发…

RK3588+FPGA+Cameralink高速相机解决方案

1. 视频接入&#xff0c;其中可见使用LVDS&#xff0c;红外使用cameralink 2. H264低倍率压缩编码本地存储 3. H264压缩使用同步422接口或者网口UDP协议输出实时码流 4. 使用串口进行通讯&#xff0c;进行类似于可见、红外或者激光器或者地面控制软件等之间的通讯 5. 使用网…

SpringBoot3-基础配置和多环境开发

1. 配置文件格式 提供三种属性配置方式&#xff0c;当三个配置文件都有&#xff0c;加载顺序从前至后 示例第二种&#xff08;主要也是用这个&#xff09;&#xff1a; 2. yaml格式 3. yaml读取数据格式的三种方式 第一种&#xff0c;使用Value读取单一属性数据 Value("${…

基于redis实现消息队列(更推荐使用专业的mq)

目录 利用redis实现消息队列&#xff08;基于list&#xff0c;点对点模型&#xff09;——lpush存放队列&#xff08;lpush 队列名 队列内容&#xff08;可一次存放多个内容&#xff0c;用空格隔开&#xff09;&#xff09; brpop取队列&#xff08;brpop 队列名 等待时间单位秒…

机器视觉日常习题(更新中。。。)

目录 第二讲 图像处理概述 第二讲 图像处理概述 几何变换&#xff1a;又称为图像空间变换&#xff0c;它将一幅图像中的坐标位置映射到另一幅图像中的新坐标位置。图像分割&#xff1a;把图像分成各具特色的区域并提取感兴趣目标的技术和过程。图像边缘&#xff1a; 平滑&#…

【深入浅出 Spring Security(六)】一文搞懂密码的加密和比对

Spring Security 中的密码加密 一、PasswordEncoder 详解常见的实现类&#xff08;了解&#xff09;DelegatingPasswordEncoder源码分析DelegatingPasswordEncoder 在哪实例化的&#xff1f; 二、自定义加密自定义方式一&#xff1a;使用{id}的形式自定义方式二&#xff1a;向S…

程序员失业转行送外卖,晒出当天收入,还以为看错了!

在程序员的共识中&#xff0c;30岁之前自己是很受企业欢迎的&#xff0c;有经验有技术&#xff0c;能够为公司创造足够多的价值。 但是一旦超过了35岁&#xff0c;如果没有做到架构师或者成为管理人员&#xff0c;那很可能是连工作都找不到的。而且这个年龄的程序员还要面临着…

700MHz设备对广播电视信号的干扰有哪些?

700MHz&#xff0c;由于其较长的波长&#xff0c;良好的传播与覆盖特性&#xff0c;不仅一直被多国用作广播电视信号频率&#xff0c;4G LTE和5G NR也同样看好这一频段&#xff0c;并在此频段上进行了相应的部署和规划。目前已经有超过45个国家和地区&#xff0c;将700MHz频段部…