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

目录

任务描述

相关知识

动画状态

动画完成时的状态

动画延迟

编程要求


任务描述

本关任务:用 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.mzph.cn/web/27872.shtml

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

相关文章

复旦大学辅修金融学专业

本文记录一下笔者本科时期在复旦大学辅修金融学专业所上过的课程。先是列出所有的课程名称&#xff0c;然后在GPT-4o的作用下生成每门课的主要研究内容。 主修课程&#xff1a; 第一学期&#xff1a;微观经济学&#xff0c;金融市场学&#xff0c;会计学 第二学期&#xff1a;…

[Cloud Networking] SPDY 协议

文章目录 1. 背景2. SPDY 之前3. SPDY 项目目标4. SPDY 功能特点4.1 SPDY基本功能4.2 SPDY高级功能 1. 背景 TCP是通用的、可靠的传输协议&#xff0c;提供保证交付、重复抑制、按顺序交付、流量控制、拥塞避免和其他传输特性。 HTTP是提供基本请求/响应语义的应用层协议。 不…

Linux下的串口通信

串口通信 基础知识&#xff1a; 什么是串口&#xff1f; 串口全称串行通信接口&#xff0c;是一种常用于电子设备之间通信的异步&#xff0c;全双工接口&#xff0c;典型的串口通信只需要 3 根线&#xff0c;分别是地线 (GND)&#xff0c;发送线(TX)&#xff0c;接收线(RX)。如…

【react小项目】bmi-calculator

bmi-calculator 目录 bmi-calculator初始化项目01大致布局01代码 02完善样式02代码 03输入信息模块03代码 04 使用图表04代码 05详细记录信息渲染05代码 06 让数据变成响应式的06-1输入框的数据处理06-2图表&#xff0c;和记录信息的区域数据处理 07 删除功能&#xff0c;撤销功…

C语言——文件

A1.文件 文件一般是指存储在外部介质上数据的集合操作系统以文件为单位对数据进行管理的输入输出是数据传送的过程&#xff0c;数据如流水一样&#xff0c;输入输出流数据的组织形式和数据文件分为ASCII文件和二级制文件 把内存中的数据按其在内存中的存储形式原样输出磁盘上存…

C# OpenCvSharp Mat操作-创建Mat-构造函数

🌟 Mat类:图像与多维矩阵的魔法 ✨ Mat类是OpenCvSharp中用于表示图像和多维矩阵的核心类。它提供了多种构造函数来创建和初始化矩阵对象。下面我们逐一解释这些构造函数,并通过示例来说明它们的用法。📸 🚀 默认构造函数 Mat() 创建一个空的Mat对象。 Mat mat = …

基于C#开发web网页管理系统模板流程-主界面统计功能完善

点击返回目录-> 基于C#开发web网页管理系统模板流程-总集篇-CSDN博客 前言 紧接上篇->基于C#开发web网页管理系统模板流程-主界面管理员入库和出库功能完善_c#web程序设计-CSDN博客 统计功能是管理系统很常见的功能&#xff0c;例如仓库管理系统要统计某时间段的出入库以…

QT信号与槽/窗口组件优化/使用QT制作QQ登录界面

使用手动连接&#xff0c;将登录框中的取消按钮使用第二中连接方式&#xff0c;右击转到槽&#xff0c;在该槽函数中&#xff0c;调用关闭函数 将登录按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断u界面上输入的账号是否为"admin"&#xff0c;…

Python量化交易学习——Part7:定制增强型中证红利策略

中证红利指数是一个反映A股市场高红利股票整体状况和走势的指数。它通过选取上海、深圳交易所中现金股息率高、分红比较稳定、具有一定规模及流动性的100只股票作为样本。这个指数的目的是提供一个全面且具有代表性的视角,以观察A股市场中高红利股票的表现。中证红利指数的样本…

永磁同步直线电机(PMLSM)控制与仿真3-永磁同步直线电机数学三环控制整定

文章目录 1、电流环参数整定2、速度环参数整定3、位置环参数整定 写在前面&#xff1a;原本为一篇文章写完了永磁同步直线电机数学模型介绍&#xff0c;永磁同步直线电机数学模型搭建&#xff0c;以及永磁同步直线电机三环参数整定及三环仿真模型搭建&#xff0c;但因为篇幅较长…

HTML前端

html 超文本标记语言 文本&#xff1a;文字字符 超文本&#xff1a;网页内容 标记&#xff1a;标签 标识 提供许多标签&#xff0c;不同标签功能不同&#xff0c;网页就是通过这些标签描述出来的&#xff0c;最终由浏览器解释运行我们看到的网页 <!-- html注释<!DO…

C++ 50 之 继承中的对象模型

继承中的对象模型 在C编译器的内部可以理解为结构体&#xff0c;子类是由父类成员叠加子类新成员而成&#xff1a; #include <iostream> #include <string> using namespace std;class Base03{ public:int m_a; protected:int m_b; private:int m_c; // 哪怕是…

lua对接GPT4实现对话

演示效果&#xff1a; 准备材料&#xff1a; 1、FastWeb网站开发服务&#xff1a;fwlua.com 2、一台服务器 该示例使用开源项目&#xff1a;fastweb 实现。 代码比较简单&#xff0c;主要是两部分&#xff0c;一个lua代码和一个html页面&#xff0c;用来用户发起请求和后台…

面向事件编程之观察者模式

前言 村里的老人常说&#xff1a;真男人就该懂得遵守“三不原则”——不主动、不拒绝、不负责。 一个复杂的软件系统&#xff0c;其中必然会存在各种各样的“对象”&#xff0c;如果在设计之初没有注意控制好耦合度&#xff0c;导致各个对象甚至是函数之间高度耦合&#xff0…

无人机的力量——在民用方面的应用

无人机在民用方面的应用广泛且多样化&#xff0c;以下是对其应用的详细介绍&#xff1a; 影视航拍&#xff1a; 无人机航拍影像具有高清晰、大比例尺、小面积、高视角的优点&#xff0c;特别适合获取带状地区航拍影像&#xff08;如公路、铁路、河流、水库、海岸线等&#xff…

C#面:简述 private、 protected、 public、 internal 修饰符的访问权限 ?

private修饰符表示成员只能在当前类中访问。这意味着私有成员对于类的外部是不可见的。私有成员通常用于封装类的内部实现细节&#xff0c;以确保数据的安全性和一致性。 protected修饰符表示成员可以在当前类和派生类中访问。这意味着受保护的成员对于类的外部是不可见的&…

网络安全知识全景地图V1.0 - 20240616更新

网络安全领域的知识全景涵盖了从基础概念到高级技术的广泛内容。博主基于自身十年多的工作经验结合CISSP认证官方教材按照不同的主题和层次梳理出如下高层次的概览地图&#xff0c;可以帮助个人和组织理解网络安全领域的主题。 1.1. 基础理论 1.1.1. 网络安全概述 网络安全的…

React@16.x(29)useRef

目录 1&#xff0c;介绍2&#xff0c;和 React.createRef() 的区别3&#xff0c;计时器的问题 目前来说&#xff0c;因为函数组件每次触发更新时&#xff0c;都会重新运行。无法像类组件一样让一些内容保持不变。 所以才出现了各种 HOOK 函数&#xff1a;useState&#xff0c;u…

Camtasia Studio 2024软件最新版下载【安装详细图文教程】

​Camtasia是美国TechSmith公司出品的一款集电脑屏幕录制、视频剪辑为一体的软件套装。同时包含Camtasia 录制器、Camtasia Studio&#xff08;编辑器&#xff09;、Camtasia 菜单制作器、Camtasia 剧场、Camtasia 播放器和Screencast的内置功能。 安 装 包 获 取 地 址&#x…

AirPlay技术规范及认证资讯

AirPlay是Apple开发的一种无线技术&#xff0c;允许用户将音频、视频或图片从iOS设备、Mac电脑或其他支持AirPlay的设备无线传输到支持AirPlay的接收器设备上&#xff0c;例如智能电视或音响系统。这项技术基于Wi-Fi网络&#xff0c;提供了一种便捷的方式来共享媒体内容。AirPl…