html如何创建关键帧动画旋转,[教程] 用 CSS3 Animations(动画) 和 Keyframes(关键帧) 创建简单的网页动画 – CSS3 实现弹跳球动画...

fdce65bd7f5544bd5ffdd83e06472d14.png

通过这个有趣的教程学习 CSS Animations(动画) 和 Keyframes(关键帧)。

我们要做什么?

下面是最终代码,也就是我们将要最终实现的演示:

基础准备

对于这个实现,我们需要一个简单的 div ,并且样式类名为 ball :

我们将使用 Flexbox 布局,把球放到页面中间,尺寸为 100px * 100px,背景色为橘黄色。

body {

display: flex; /* 使用Flex布局 */

justify-content: center; /* 水平居中 */

}

.ball {

width: 100px;

height: 100px;

border-radius: 50%; /* 把正方形变成圆形*/

background-color: #FF5722; /* 设置颜色为橙色*/

}

创建 Keyframe(关键帧)

Keyframe(关键帧) 用于 CSS 动画,以便我们完全控制动画。创建 Keyframe(关键帧) 的样式非常简单。我们使用关键字 @keyframes,在后面跟动画名称:

@keyframes nameOfAnimation {

/* 代码 */

}

在这个示例中,我们把 keyframe(关键帧) 取名为 bounce。在 Keyframe 中,用 from 和 to 关键字来指定动画开始点和结尾点的 CSS 样式。

@keyframes bounce {

from { /* 开始 */ }

to { /* 结束 */ }

}

很简单是不是? 最后一步,我们可以添加我们的开始点和结尾点的 CSS 样式。为了创建反弹效果,我们将只是改变球的位置。transform 允许我们修改给定元素的坐标。以下是最终的 keyframe(关键帧) :

@keyframes bounce {

from { transform: translate3d(0, 0, 0); }

to { transform: translate3d(0, 200px, 0); }

}

我们使用 transform 让球沿着三维轴平移,translate3D 函数需要 3 个输入参数,即 (x, y, z) 。 因为我们想让球上下跳动,我们只需要沿着 y 轴进行平移。因此,动画结束点(即 to 中样式)的 y 值变成了 200px 。

运行 Keyframe(关键帧)

现在 @keyframe 已经创建了,是时候让它运行起来了!回到 .ball{} css 并添加以下行代码:

.ball {

/* ... */

animation: bounce 0.5s;

animation-direction: alternate;

animation-iteration-count: infinite;

}

解释一下这三行代码:

告诉 ball 元素使用我们的 keyframe(关键帧) 规则反弹。 设置完成动画的时间长度为 .5 秒。

完成后,动画反方向执行(反转)。

无限次地运行动画。

真棒,到目前为止。 离我们想要的已经很近了,但还不完美:

它看起来不像一个弹跳的球。那是因为我们没有为动画设置速度曲线,默认会被设置为 ease。意思是动画的速度刚开始慢,中间变快,快结束的时候又变慢。不幸的是,这不是一个弹跳球的理想选择。幸运的是,我们可以使用 Math 来定制这个 速度曲线!

进入太多的细节,你可以使用 bezier(贝塞尔曲线) 来指定自定义动画时间。以下是附加的代码:

.ball {

/* ... */

animation: bounce 0.5s cubic-bezier(.5,0.05,1,.5);

}

您可以使用这个网站来找到合适的速度曲线。 这里用数字创建一个(慢,慢,慢,快)的曲线 – 这正是我们想要创建的弹跳效果。

这是最终代码(包括用于最终浏览器支持的 webkit 前缀):

当然这是用 CSS Animations(动画) 和 Keyframes(关键帧) 创建的最简单的动画效果,后面会有更多关于网页动画的教程,敬请关注。

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

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

相关文章

定时器中断实验 编写程序使定时器0或者定时器1工作在方式1,定时50ms触发蜂鸣器。

编写程序使定时器0或者定时器1工作在方式1&#xff0c;定时50ms触发蜂鸣器。 程序&#xff1a; #include<reg51.h> sbit fmP2^3; unsigned char cnt; int main(void) { TMOD0x01; TH0(65536-46083)/256; TL0(65536-46083)%256; cnt0; TR01; EA1; ET01; while(1); } void …

iOS打开沙盒html,iOS WKWebView加载本地/沙盒HTML及css、images

注意这里加载的是本地的不是沙盒里的,加载沙盒的方法在最下面。先上代码&#xff1a;NSString *path [[NSBundle mainBundle] pathForResource:“local.html" ofType:nil];[_wkWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]]];注意&am…

用python做频数分析_使用Python进行描述性统计

2 使用NumPy和SciPy进行数值分析 2.1 基本概念1 from numpy import array 2 from numpy.random import normal, randint 3 #使用List来创造一组数据 4 data [1, 2, 3] 5 #使用ndarray来创造一组数据 6 data array([1, 2, 3]) 7 #创造一组服从正态分布的定量数据 8 data norm…

串行口实验 编写程序利用串口调试助手通过串口给实验板发送数据(数据范围0x00-0xfe),单片机将接受到的数据加1后再发送给PC机。

编写程序利用串口调试助手通过串口给实验板发送数据&#xff08;数据范围0x00-0xfe&#xff09;&#xff0c;单片机将接受到的数据加1后再发送给PC机。 程序&#xff1a; #include<reg51.h> #define uchar unsigned char #define uint unsigned int uchar temp; int main…

中学生 学python_中小学生为什么要学Python编程

中小学生为什么要学Python编程&#xff1f;未来是人工智能的时代&#xff0c;有理由相信Python将发挥更大的作用。教育部下发的《2018年度普通高等学校本科专业备案和审批结果的通知》显示&#xff0c;新增备案本科专业79个、新增审批本科专业19个。 呼声极高的人工智能专业被列…

串行口实验 编写程序利用PC机控制单片机实验板上的数码管设备工作

编写程序利用PC机控制单片机实验板上的数码管设备工作 在pc上输入fe&#xff0c;第一个数码管显示1. 在pc上输入fa第五个数码管显示5 程序&#xff1a; #include<reg51.h> #define uchar unsigned char #define uint unsigned int uchar temp; uchar led[]{0xc0,0xf9,0x…

I/0口输入输出实验 流水灯程序 P0、P1、P2、P3口作为输出口,连接八只发光二极管,编写程序,使发光二极管从左至右循环点亮。

P0、P1、P2、P3口作为输出口&#xff0c;连接八只发光二极管&#xff0c;编写程序&#xff0c;使发光二极管从左至右循环点亮。流水灯程序 程序&#xff1a; #include<reg51.h> //包含单片机定义寄存器的头文件 sbit led P1^0; //将led定义为P1.0位 void delay(void) //…

python3.6库参考手册_python3.5.2官方帮助文档参考手册(CHM版)

python3.5.2官方帮助文档 参考手册&#xff08;CHM版&#xff09; python3.5.2官方帮助文档 参考手册&#xff08;CHM版&#xff09;&#xff0c;欢迎下载&#xff01; 新语法特性&#xff1a; PEP 492,具有async和await语法的协同程序。 PEP 465, 新矩阵乘法运算符&#xff1a…

I/0口输入输出实验 将P1口的某一位作为输入使用,连接一个按键,当按键按下时使发光二极管亮,否则发光二极管熄灭

将P1口的某一位作为输入使用&#xff0c;连接一个按键&#xff0c;当按键按下时使发光二极管亮&#xff0c;否则发光二极管熄灭。 程序&#xff1a; #include<reg51.h> sbit KEYP1^1; sbit LEDP1^2; int main(void){ LED1; KEY1; if(KEY0) LED~LED; else{ LEDLED; } }

I/0口输入输出实验 学习IO口的位操作方法,分别选择P0、P1、P2、P3端口中的某一位,该位作为输出使用,连接一只发光二极管,控制器闪烁。

学习IO口的位操作方法&#xff0c;分别选择P0、P1、P2、P3端口中的某一位&#xff0c;该位作为输出使用&#xff0c;连接一只发光二极管&#xff0c;控制器闪烁。 程序&#xff1a; #include<reg51.h> sbit KEYP1^1; sbit LEDP1^2; int main(void){ LED1; KEY1; if(KEY0)…

域控服务器取消验证_记一次域控服务器应急

搜索公众号&#xff1a;暗网黑客可领全套网络安全课程、配套攻防靶场一介小白是如何成长为黑客大佬的一、背景介绍这是去年11月份的应急事件&#xff0c;反复到客户现场多次才找到原因&#xff0c;最后得到的结论也极为简单。解决问题过程中&#xff0c;由于客户给的压力较大&a…

html5难点,学习HTML5的难点是什么?

2012-02-05html5为什么要学html5&#xff1f;HTML5 是继 HTML4。01, XHTML 1。0 和 DOM 2 HTML 后的又一个重要版本&#xff0c;旨在消除富 Internet 程序(RIA)对 Flash&#xff0c; Silverlight&#xff0c; JavaFX 一类浏览器插件的依赖。HTML5 带来很多新功能&#xff0c;以…

AD转换实验 编写程序利用ADC0804 AD转换器采集电位器的模拟电压,将采集到的数字量在程序中换算成实际采集的模拟电压,并用数码管显示所采集的实际模拟电压值。(如:AD转换后的数字量为128,则

编写程序利用ADC0804 AD转换器采集电位器的模拟电压&#xff0c;将采集到的数字量在程序中换算成实际采集的模拟电压&#xff0c;并用数码管显示所采集的实际模拟电压值。&#xff08;如&#xff1a;AD转换后的数字量为128&#xff0c;则数码管应该显示2.5&#xff09; 程序&am…

python做词典_Python实现创建字典

Python编写一个名为 make_album() 的函数&#xff0c;它创建一个描述音乐专辑的字典。 1、这个函数应接受歌手的名字和专辑名&#xff0c;并返回一个包含这两项信息的字典。使用这个函数创建三个表示不同专辑的字典&#xff0c;并打印每个返回的值&#xff0c;以核实字典正确地…

8255总线实验 编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8。

8255总线实验 编写程序利用8255扩展单片机的IO口&#xff0c;控制8位数码管显示1-8。 程序&#xff1a; #include<reg51.h> #include<absacc.h> #define PORT_A XBYTE[0X7FFC] #define PORT_B XBYTE[0X7FFD] #define PORT_C XBYTE[0X7FFE] #define PORT_CTL XBYTE[…

以下不属于python特点的是什么_以下哪一个不属于python语言的特点-Python语言的特点有哪些...

Python语言的特点有哪些 Python 是目前最流行的语言之一&#xff0c;从云计算、大数据到人工智能&#xff0c;Python 无处不在&#xff0c;Python 人才需求量也在逐年攀升&#xff0c;Python 为何能发展如此的迅猛&#xff0c;究竟有什么特点呢&#xff1f; Python 语言主要有以…

四叶草剧场服务器维修价格,四叶草剧场不合理报酬机制是什么-不合理报酬机制和收益详解-Appfound...

四叶草剧场不合理报酬机制是什么&#xff1f;不合理报酬的增益效果怎么样&#xff1f;在四叶草剧场手游中&#xff0c;有一种剧照效果是不合理的报酬&#xff0c;会使敌方角色被施加减益效果时还会失去5%最大生命&#xff0c;下面就为大家详细介绍不合理报酬的机制和收益。不合…

java8 lambda map排序_Java8新特性第3章(Stream API)

转载请注明出处&#xff1a;https://zhuanlan.zhihu.com/p/20540202Stream作为Java8的新特性之一&#xff0c;他与Java IO包中的InputStream和OutputStream完全不是一个概念。Java8中的Stream是对集合功能的一种增强&#xff0c;主要用于对集合对象进行各种非常便利高效的聚合和…

springboot security 权限不足_SpringBoot 整合 SpringSecurity 之起源篇(零)

本篇为SpringSecurity的第一篇&#xff0c;主要来介绍下什么是SpringSecurity&#xff0c;以及在springboot中如何使用它I. 基本知识点官方文档: https://docs.spring.io/spring-security/site/docs/5.2.2.BUILD-SNAPSHOT/reference/htmlsingle/#community-help下面是官方介绍S…

java输入年份和月份,输出天数

java输入年份和月份&#xff0c;输出天数 import java.util.Scanner;/*** Switch case 实现从键盘录入年份月份&#xff0c;输出天数*/ public class Test02 {public static void main(String[] args) {Scanner sc new Scanner(System.in);System.out.println("请输入年…