CSS从入门到精通——动画:CSS3动画延迟和完成后状态的保持

news2024/10/5 14:08:25

目录

任务描述

相关知识

动画状态

动画完成时的状态

动画延迟

编程要求


任务描述

本关任务:用 CSS3 实现小车等待红绿灯的效果。效果图如下:

相关知识

为了完成本关任务,你需要掌握:1.动画状态,2.动画完成时的状态,3.动画延迟。

需要完成的效果图如下:

动画状态

这里以绿色小球的移动来说明小球的状态。小球向右移动是利用定位来改变它的left值来实现的。(transform:translateX();也是可以的)。

基本的结构如下(这里省略了部分样式):

<div class="greenBall"></div>
.greenBall{
  position: absolute;
  left: 100px;
  top: 100px;
}

效果图如下:

运用第一关学到的知识,先创建一个动画名称为greenBall的动画。代码如下:

@keyframes greenBall{
  0% { left: 200px; background: yellow;}
  100%{ left: 400px; background: red;}
}

然后把这个动画绑定到class="greenBall"元素上就可以了。代码如下:

.greenBall{
   animation: greenBall 2s ease-in;
}

效果图如下:

这里以颜色来说明其中的几个状态:

  • 绿色是小球本身的状态;
  • 黄色是小球动画开始时的状态;
  • 红色是小球动画结束时的状态;
  • 在动画结束后,会回到小球本身的状态;

动画完成时的状态

上面已经实现了绿色小球向右移动的动画, 怎么在绿色小球动画完成时保持这个状态呢? 这里介绍一个属性:animation-fill-mode。 它规定了动画在播放之前或之后,其动画效果是否可见。其属性值如下:

  • none,不改变默认行为;
  • forwards,动画完成后,保持其在100%设置时的状态;
  • backwards,在延迟的时间内,在动画显示之前,应用其在0%时设置的状态;
  • both,向前和向后模式都被应用;

绿色小球在移动后保持动画完成时的状态,实现代码如下:

.greenBall{
   animation: greenBall 2s ease-in forwards;
}

效果如下:

动画延迟

红色小球和绿色小球的动画基本是一样的,调整一下位置就可以了。不同点在于红色小球有 2s的延迟。

这个可以利用属性animation-delay来实现,它定义了动画在何时开始,默认为0。实现代码如下:

.redBall{
   animation: redBall 2s ease-in 2s forwards;
}

效果如下:

这里说明一下动画简写的顺序:

  • redBall是动画名称;
  • 2s是动画完成的时间;
  • ease-in是动画完成的速度曲线,表示动画从低速开始;
  • 2s是动画延迟时间;
  • forwards是动画完成后保持其在100%设置时的状态;

编程要求

根据提示,在右侧编辑器补充代码,实现交通灯在等待2s后,由红灯(red)变为绿灯(green),然后一直保持的效果。要求如下:

  • 动画名称为light
  • 一个动画完成的时间为1s
  • 动画的速度曲线为linear;
  • 动画延迟时间为2s
  • 这里动画的开始,结束用0%, 100%表示;
  • 背景色用background

为了方便评测, CSS 都是需要以分号;结尾的。

效果如下:

 

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document
  </title>
  <style>
     *{
      margin: 0;
      padding: 0;
     }
     @keyframes car{
      0%{ left: 100px;}
      33%{ left: 400px;}
      66%{ left: 400px;}
      100%{ left: 1000px;}
     }
      
      /*********** Begin (创建动画)***********/
       @keyframes light{
          0%{background:red;}
          100%{background:green;}
       }

       
      /*********** End ***********/
   .road{
      height: 200px;
      border: 3px dashed #ccc;
      margin-top: 30px;
      padding: 10px;
      position: relative;
   }
   .car{ 
      width: 100px;
      height: 200px;
      transform:rotate(90deg);
      position: absolute;
      top: 20px;
      left: 100px;
      animation: car 6s ease forwards ;
   }
   .light{
      width: 50px;
      height: 50px;
      border-radius: 50%;
      background: red;
      position: absolute;
      left: 600px;
      top: 0px;
       
      /*********** Begin ***********/
      .light{
         animation:light 1s linear 2s forwards;
      }
       
      /*********** End ***********/
   }

      
  </style>
</head>
<body>
 
   <div class="road">
       <img src="https://www.educoder.net/attachments/download/207224" alt="车" class="car">
       <div class="light"></div>
   </div>

</body>
</html>

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

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

相关文章

mac下Xcode在iphone真机上测试运行iOS软件

最近一个需求需要在iPhone真机上测试一个视频直播的项目。 需要解决如何将项目 app 安装到真机上 在进行真机调试。 安装Xcode 直接在App Store上搜索Xcode安装即可。 关键是要安装Simulator。项目需要安装iOS17.5但是由于安装包太大&#xff0c;并且网络不稳定的原因。在Xco…

关于yolov5训练的那些事儿

1.YOLOv5 的模型系列包括从最小到最大的多种模型&#xff1a;YOLOv5n&#xff08;Nano&#xff09;&#xff0c;YOLOv5s&#xff08;Small&#xff09;&#xff0c;YOLOv5m&#xff08;Medium&#xff09;&#xff0c;YOLOv5l&#xff08;Large&#xff09;&#xff0c;以及 YO…

【Linux硬盘读取】Windows下读取Linux系统的文件解决方案:Linux Reader4.5 By DiskInternals

前言 相信做机器视觉相关的很多人都会安装 Windows 和 Linux 双系统。在 Linux 下&#xff0c;我们可以很方便的访问Windows的磁盘&#xff0c;反过来却不行。但是这又是必须的。通过亲身体验&#xff0c;向大家推荐这么一个工具&#xff0c;可以让 Windows 方便的访问 Ext 2/3…

Linux 文件的权限信息解读 chmod修改权限 数字序号表示权限

ls -l #列出当前文件 显示详细信息 drwxr-xr-x. 2 dpc test 6 Jun 15 07:45 test.txt共分为三部分 drwxr-xr-x.&#xff1a;表示文件和文件夹的权限信息dpc &#xff1a;文件&#xff0c;文件夹所属的用户test &#xff1a; 文件和文件夹所属的用户组 drwxr-xr-x 解读 d表示为…

实用软件下载:BetterZip 5最新安装包及详细安装教程

BetterZip是一款功能强大的Mac解/压缩软件&#xff0c;可以满足用户对文件压缩、解压、加密和保护等方面的需求。以下是关于BetterZip软件的主要功能、特点和使用方法的详细介绍&#xff0c;以及对其用户友好度、稳定性和安全性的评价。 安 装 包 获 取 地 址: BetterZip 5-安…

【尚庭公寓SpringBoot + Vue 项目实战】公寓管理(十一)

【尚庭公寓SpringBoot Vue 项目实战】公寓管理&#xff08;十一&#xff09; 文章目录 【尚庭公寓SpringBoot Vue 项目实战】公寓管理&#xff08;十一&#xff09;1、业务介绍2、逻辑模型介绍3、接口开发3.1、保存或更新公寓信息3.2、根据条件分页查询详细信息3.3、根据ID获…

深度学习(七)——神经网络的卷积操作

卷积操作 一、torch.nn中Convolution Layers函数的介绍 1. 参数介绍 nn.Conv1d: Conv取自Convolution的前四个字母&#xff0c;1d代表的是一个一维操作。 nn.Conv2d: 2d表示是一个二维的操作&#xff0c;比如图像就是一个二维的。 其余参数不常用&#xff0c;见官网文档&am…

分布式事务AP控制方案(下)

分布式事务控制方案 本篇文章给出一种要求高可用性&#xff08;AP思想&#xff09;的分布式事务控制方案 上篇回顾&#xff1a;点我查看 分布式事务控制方案1、前景回顾2、数据库和缓存的操作3、分布式文件系统1&#xff09;页面静态化2&#xff09;远程调用3&#xff09;调用…

adb卸载系统应用

1.进入shell adb shell2.查看所有包 pm list packages3.查找包 如查找vivo相关的包 pm list packages | grep vivo发现包太多了,根本不知道哪个是我们想卸载的应用 于是可以打开某应用,再查看当前运行应用的包名 如下: 4.查找当前前台运行的包名 打开某应用,在亮屏状态输入 …

卫星通讯助力船舶可视化监控:EasyCVR视频汇聚系统新应用

一、背景 随着科技的不断进步和社会治安的日益严峻&#xff0c;视频监控系统已经成为维护公共安全和提升管理效率的重要工具。传统的视频监控主要依赖于有线传输&#xff0c;但受到地域限制、布线成本高等因素的影响&#xff0c;其应用范围和效果受到一定限制。而卫星通讯传输…

学会python——显示进度条(python实例五)

目录 1、认识Python 2、环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3、进度条显示 3.1 代码构思 3.2 代码示例 3.3 运行结果 4、总结 1、认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读…

ComfyUI中使用 SD3 模型(附模型下载详细说明)

文章目录 背景安装方式一方式二 测试 背景 StabilityAI近日开源了Stable Diffusion 3 Medium&#xff0c;简称 SD3&#xff0c;该模型拥有着20亿参数。其特点如下&#xff1a; 提升了整体图片的质量、真实感提供了三种文本编码器可组合使用&#xff0c;有助于在性能和效率之间…

《大道平渊》· 拾肆 —— 不要为不属于你负责的事情负责

《平渊》 拾肆 "客观世界如是观照&#xff0c;控制自己&#xff0c;不要介入因果。" 美国开国总统华盛顿说过, 不要干涉欧洲事务。 可是他的后任都不听, 于是纷纷卷入了无穷的麻烦之中。 不要为不属于你负责的事情负责。 别人的行为和你有什么关系&#xff1f; 就…

Stable-Diffusion-WebUI 常用提示词插件

SixGod提示词插件 SixGod提示词插件可以帮助用户快速生成逼真、有创意的图像。其中包含&#xff0c;清空正向提示词”和“清空负向提示词、提示词起手式包含人物、服饰、人物发型等各个维度的提示词、一键清除正面提示词与负面提示词、随机灵感关键词、提示词分类组合随机、动…

<Rust><iced>基于rust使用iced库构建GUI实例:图片的格式转换程序

前言 本专栏是Rust实例应用。 环境配置 平台&#xff1a;windows 软件&#xff1a;vscode 语言&#xff1a;rust 库&#xff1a;iced、iced_aw 概述 本文是专栏第二篇实例&#xff0c;是一个图像格式转换程序&#xff0c;基于rust图像处理库image以及文件处理库rfd。 UI演示&…

Python读取wps中的DISPIMG图片格式

需求&#xff1a; 读出excel的图片内容&#xff0c;这放在微软三件套是很容易的&#xff0c;但是由于wps的固有格式&#xff0c;会出现奇怪的问题&#xff0c;只能读出&#xff1a;类似于 DISPIMG(“ID_2B83F9717AE1XXXX920xxxx644C80DB1”,1) 【该DISPIMG函数只有wps才拥有】 …

阿里新发布的UniAnimate现高效人像动画生成;在ComfyUI中使用Stable 3模型;音频版的gpt2o;将 PDF 文档转换为音频播客

✨ 1: UniAnimate 阿里新发布的UniAnimate通过统一的视频扩散模型&#xff0c;实现高效人像动画生成&#xff0c;支持长视频生成 UniAnimate 是一种专注于一致性人像动画生成的统一视频扩散模型。该模型通过映射参考图像、姿势指导和噪声视频到一个共同特征空间&#xff0c;实…

docker安装nginx并且加上映射

随机启动nginx&#xff0c;方便复制配置文件 docker run -p 80:80 --name nginx -d nginx:1.10将容器内的配置文件拷贝到当前目录 docker container cp nginx:/etc/nginx .别忘了后面的点 修改文件名称&#xff1a; mv nginx conf 把这个 conf 移动到/mydata/nginx 下 终止原…

金融行业运维实践案例

确保金融系统的稳定运行和数据安全&#xff0c;业务对可靠性、安全性和合规性具有超高的要求。保障IT系统持续高效稳定运维&#xff0c;是金融行业运维的核心诉求。 在实践应用中&#xff0c;有以下方面问题需要解决。 1、数据分散。业务发展快速&#xff0c;数量多&#xff…

IDEA创建lib目录,导入jar

IDEA创建lib目录&#xff0c;导入jar lib第一种创建方法&#xff1a; 当发现项目没有lib目录时&#xff0c;File>>>Project Structure 打开Artifacts目录 lib第二种创建方法&#xff1a; 按需选择需要的jar包或者全选即可 lib第三种创建方法&#xff1a;