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 …

python绘制如下图形、小三角形边长20_python二级操作题与分析(7)

1.基本操作题 (1) 从键盘输入 3 个数作为三角形的边长&#xff0c;在屏幕上显示输出由这 3 个边长构成三角形的面积&#xff08;保留 2 位小数&#xff09;。 请参照代码模板&#xff0c;完善代码。 输入输出示例 输入输出 示例 1 3,3,3 3.90 习题讲解 a,b,c eval(input()) p …

NPM 的使用技巧:简化 JavaScript 开发和依赖管理

前言 NPM&#xff08;Node Package Manager&#xff09;是 JavaScript 生态系统中最流行的包管理工具之一。本文将介绍一些有用的 NPM 使用技巧&#xff0c;帮助开发者更好地利用 NPM 管理项目依赖、执行脚本、发布自己的包以及解决常见问题。 1. 初始化项目 使用 NPM 初始化…

定时器中断实验 编写程序使定时器0或者定时器1工作在方式1,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。

编写程序使定时器0或者定时器1工作在方式1&#xff0c;定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。 程序&#xff1a; #include <reg51.h> #define uint unsigned int #define uchar unsigned char sbit a P1^0; sbit b P1^1; uchar code tu…

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…

定时器中断实验 编写程序使定时器0或者定时器1工作在方式2,自动重装载模式,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。

编写程序使定时器0或者定时器1工作在方式2&#xff0c;自动重装载模式&#xff0c;定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。 程序&#xff1a; #include <reg51.h> #define uchar unsigned char uchar led[]{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x…

用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…

深圳计算机专业收入,深圳哪个行业收入最高?哪些行业最抢手?这份报告告诉你!...

原标题&#xff1a;深圳哪个行业收入最高&#xff1f;哪些行业最抢手&#xff1f;这份报告告诉你&#xff01;原标题&#xff1a;深圳哪个行业收入最高&#xff1f;哪些行业最抢手&#xff1f;这份报告告诉你&#xff01;南方网2019年7月5日讯 日前&#xff0c;智联招聘发布《2…

串行口实验 编写程序利用串口调试助手通过串口给实验板发送数据(数据范围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…

webview传递参数给html,uniapp与webview之间的相互传值

1.uni-app 如何发送数据到 H5&#xff1f; 其实很接单、在 web-view 中只需要通过 URL 就可以向 H5 进行传参 例如在 uni-app 中&#xff1a;export default {data() {return {url:‘/hybrid/html/local.html?data‘};},onLoad(data) {//这里对要传入到webview中的参数进行enc…

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…

html css模仿实例,HTML+CSS模仿大学网站主页

【实例简介】用HTMLCSS模仿的大学主页 无JS 无FLASH 没有添加超链接【实例截图】【核心代码】pp5740492_4445056├── images│ ├── 01_hover.jpg│ ├── 02_hover.jpg│ ├── bg_link.jpg│ ├── bg_mainr.jpg│ ├── bg_search.jpg│ ├── bg_titl…

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; } }

html5情人节贺卡,Web工程师的情人节卡片

CSS语言&#xff1a;CSSSCSS确定import url(https://fonts.googleapis.com/css?familyOpenSans:700);body {background: url(http://www.howie23.org/pics/seamless-wood-grain-texture.jpg);background-size: cover;font-family: Open Sans;font-size: 16px;}.bottom,.paper …

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;以…