不会做动画的程序猿不是好的动画师(如何用css3动画做动画)

“看清animation,transform, @keyframes,transition这四个的脸,以后这四个来了就是要做动画了,看好你们的网页,除了这四个,谁管你们都不好使。”


  • 一.transition(过渡)
    • (一)transition的作用
    • (二)transition的属性
  • 二.animation和@keyframes(动画)
    • (一)@keyframes
      • 1.动画序列
      • 2.书写简例
    • (二)animation
      • 1.书写简例
      • 2.常用属性
      • 3.简写属性
    • 三.完整动画简例代码
  • 三.transform(转换)
    • (一)2D转换
      • 1.缩放:scale:
      • 2.移动:translate
      • 3.旋转:rotate
      • 4.设置元素转换的中心点:transform-origin
      • 5.综合性写法
    • (二)3D转换
      • 1.三维坐标系
      • 2.透视:perspective
      • 3.3D呈现:transfrom-style
      • 4.3D位移:translate3d(x,y,z)
      • 5.3D旋转:rotate3d(x,y,z)

一.transition(过渡)

(一)transition的作用

如果你有一个盒子,他的体内也有个小盒子。现在我们想把鼠标放上去他就能变大。

<style>.father {width: 200px;height: 200px;background-color: pink;}        .son {width: 100px;height: 100px;background-color: skyblue;}
</style>
<body><div class="father"><div class="son"></div></div>
</body>

效果如下:
请添加图片描述
现在我们给他添加鼠标放上去子盒子变大效果

<style>.son:hover {width: 160px;height: 160px;}
</style>

效果如下:
请添加图片描述
但是这样是鼠标放上去立刻变大,一点也不美观。如果要有个从小变大就好了,此时我们就可以请出第一位大佬————transition

    .son {width: 100px;height: 100px;background-color: skyblue;transition: all 0.6s;}

效果就变为:
请添加图片描述

这就是transition的作用,transition 属性设置元素当过渡效果

(二)transition的属性

transition 属性设置元素当过渡效果,四个简写属性为:
1.transition-property
2.transition-duration
3.transition-timing-function
4.transition-delay
在这里插入图片描述
其中他的复写方式:
transition:transition-property transition-duration transition-timing-function transition-delay;


二.animation和@keyframes(动画)

动画基本使用

	先定义动画用@Keyframes定义动画(类似定义类选择器)再animation调用动画

(一)@keyframes

@keyframes负责定义动画
要创建 CSS3 动画,你需要了解 @keyframes 规则。

@keyframes 规则是创建动画。
@keyframes 规则内指定一个 CSS 样式和动画将逐步从目前的样式更改为新的样式。

1.动画序列

1.0%是动画的开始,100%是动画的结束。这样的规则就是动画序列
2.在@Keyframes中规定某种css样式。就能创建由当前样式逐渐改为新样式的动画效果
3.动画是使元素从一种样式逐渐变化为另一个样式的效果,可以改变任意多个样式任意多的动画效果
4.请用百分比来规定变化发生的时间,或者使用关键词from和to,等于0%和100%
5.动画序列可以做多个动画的状态的变化Keyframe关键帧,里面的百分比要是整数,是整体时间划分

2.书写简例

        @keyframes move {/* 开始状态 */0% {transform: translate(0px);}/* 结束状态 */100% {transform: translate(500px, 0);}}

(二)animation

当在 @keyframes 创建动画,把它绑定到一个选择器,否则动画不会有任何效果。
指定至少这两个CSS3的动画属性绑定向一个选择器:
规定动画的名称
规定动画的时长

1.书写简例

 /* 动画名称 */animation-name: move;/* 持续时间 */
animation-duration: 10s;/* 播放次数 */animation-iteration-count: infinite;

2.常用属性

1.animation请添加图片描述
2.animation-timing-function
在这里插入图片描述

3.简写属性

一.语法:
animation:动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 动画起始或者结束的状态
二.注意:
1.简写属性里面不包含animation-play-state属性
2.暂停动画:animation-play-state:puased;经常和鼠标经过等其他配合使用
3.想要动画走回来而不是直接跳回来:animation-direction:alternate;
4.盒子动画结束后,停在结束位置animation-fill-mode:forward
三.所以上面的简例可以简写为:

 animation: move 10s infinite;

三.完整动画简例代码

    <div></div>
        @keyframes move {/* 开始状态 */0% {transform: translate(0px);}/* 结束状态 */100% {transform: translate(500px, 0);}}div {width: 300px;height: 300px;background-color: pink;/* 动画名称 */animation-name: move;/* 持续时间 */animation-duration: 10s;/* 播放次数 */animation-iteration-count: infinite;}

效果如下:
请添加图片描述


三.transform(转换)

转换(transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、变形、缩放


(一)2D转换

1.缩放:scale:

缩放,顾名思义,可以放大和缩小。 只要给元素添加上了这个属性就能控制它放大还是缩小。

1.语法:
transform:scale(x,y);
2.总结:
宽和高都放大一倍,相对于没有放大
transform:scale(2,2) :宽和高都放大了2倍
transform:scale(2) :只写一个参数,第二个参数则和第一个参数一样,相当于 scale(2,2)
transform:scale(0.5,0.5):缩小

2.移动:translate

2D移动是2D转换里面的一种功能,可以改变元素在页面中的位置,类似定位。

1.语法:
transform: translate(x,y);
2.总结:
定义 2D 转换,沿着 X 和 Y 轴移动元素
translate中的百分比单位是相对于自身元素的 translate:(50%,50%);
translate类似定位,不会影响到其他元素的位置
对行内标签没有效果

3.旋转:rotate

2D旋转指的是让元素在2维平面内顺时针旋转或者逆时针旋转。

1.语法:
transform:rotate(angle)
2.总结:
角度为正时,顺时针,负时,为逆时针
默认旋转的中心点是元素的中心点

4.设置元素转换的中心点:transform-origin

1.语法:transform-origin:x y;
2.注意
注意后面的参数x和y是空格隔开
xy默认转换的中心点是元素的中心点(50% 50%)
还可以给x y设置像素或者方位名称(top bottom left right center)

5.综合性写法

1.语法:transform:translate() rotate() scale()…

2.注意:
其顺序会影响转换的效果,先旋转会改变坐标轴方向
当我们同时有位移和其他属性等等时候,记得要将位移放在最前面
一个元素可以添加多个动画,逗号分割

(二)3D转换

1.三维坐标系

三维坐标系其实就是指立体空间,立体空间是由3个轴共同组成的。

请添加图片描述

2.透视:perspective

1.在2d平面产生近大远小的视觉立体,但是只是效果二维的
2.如果想要在网页产生3D效果需要透视(理解为3D物体投影在2D平面上)
3.透视我们也称为视距,视距就是人的眼睛到视频的距离
4.距离视觉点越近在电脑平面成像越大,越远成像越小
5.透视的单位是像素
6.透视写在被观察元素的父盒子上面的

3.3D呈现:transfrom-style

控制子元素是否开启三维立体空间
代码给父级,但是影响的是子盒子

属性:
在这里插入图片描述

4.3D位移:translate3d(x,y,z)

1.语法:

transform:translateX(…px)
transform:translateY(…px)
transform:translateZ(…px)
transform:translate3d(x,y,z)其中x,y,z分别指要移动的轴的方向的距离
复写:transform:translateX() translateY() translateZ()

5.3D旋转:rotate3d(x,y,z)

可以让元素在三维平面沿着x轴,y轴,z轴或者自定义轴进行旋转

语法:
transform:rotateX(45deg)沿着x轴进行旋转
transform:rotateY(45deg)沿着y轴进行旋转
transform:rotateZ(45deg)沿着y轴进行旋转
transform:rotate3d(x,y,z,45deg)沿着自定义轴旋转deg角度

其中transform:rotateX(45deg)沿着x轴进行旋转方向判断参考左手手准则
在这里插入图片描述
transform:rotateY(45deg)沿着y轴进行旋转判断参考左手手准则
此时大拇指的方向改为指向下,即y轴正方向


对动画的总结简单的就写到这里,希望对各位看客有用。喜欢的话一键三连,鼠标动一动,每天有进步。

请添加图片描述

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

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

相关文章

[一起来做动图吧]Animate制作简单动图,包教包会,不会举报

这个是目录 首先&#xff0c;认识一下An吧①区&#xff0c;我不怎么用但其实很重要②区&#xff0c;要和④区混合食用选择&#xff0c;自由变形&#xff0c;套索工具绘图工具&#xff08;以线条为例&#xff09;填充和笔触&#xff1a;对象绘制模式&#xff1a;笔触、样式和宽度…

chatgpt赋能python:用Python来制作动画

用Python来制作动画 Python是一种高级编程语言&#xff0c;可以用于许多任务&#xff0c;包括数据分析、网络编程&#xff0c;甚至是制作动画。在这篇文章中&#xff0c;我们将讨论如何使用Python来制作动画。 Python中的动画库 Python中有许多用于制作动画的库。其中最流行…

ping命令 网络抓包 分析

首先&#xff0c;执行ipconfig确认自己电脑的ip地址 可以得到我的电脑的ip地址为192.168.43.15&#xff0c;网关地址为192.168.43.1 打开wireshark抓包工具&#xff0c;ping网关&#xff0c;看看会发生什么 命令行中&#xff0c;我们发送了4个具有32B的数据&#xff0c;从抓…

网络抓包-抓包工具tcpdump的使用与数据分析

1.测试背景 本次测试选用两台不同的服务器&#xff0c;ip分别为.233和.246,233服务器为客户端&#xff0c;246服务器为服务端。利用tcp协议就行socket通信。socket网络编程部分示例代码为基本的通信代码&#xff0c;需要了解tcp网络通讯的基本协议与过程。服务器上采用tcpdump…

通过抓包研究TCP的连接、传输、断开

1-建立连接TCP三次握手 建立一个 TCP 连接需要“三次握手”&#xff0c;缺一不可 &#xff1a; 一次握手:客户端发送带有 SYN&#xff08;SEQx&#xff09; 标志的数据包 -> 服务端&#xff0c;然后客户端进入 SYN_SEND 状态&#xff0c;等待服务器的确认&#xff1b;二次握…

Winpcap进行抓包,分析数据包结构并统计IP流量

2020年华科计算机网络实验 文末有完整代码&#xff0c;仅限参考 一.实验目的 随着计算机网络技术的飞速发展&#xff0c;网络为社会经济做出越来越多的贡献&#xff0c;可以说计算机网络的发展已经成为现代社会进步的一个重要标志。但同时&#xff0c;计算机犯罪、黑客攻击、…

HttpCanary抓包断网问题解决方式

以上操作步骤完成&#xff0c;即可完成抓包操作

原生JS实现代码高亮功能

实现步骤 分析如何实现该功能了解词法结构Javascript的产生式少废话&#xff0c;上代码 分析如何实现该功能 平时我们在使用一些代码编辑器或者Markdown时很好奇它的代码高亮是如何 实现的。其实原理也挺简单的,就是区分代码内容的不同token并加以颜色标识。 我们将以js规则为例…

从六个维度来分析:代码、无代码、低代码、AI提示代码、AI低代码

IT行业最不缺少概念&#xff0c;再多几个也无妨&#xff0c;反正大部分的概念大部分人都不会真正弄懂。AI低代码是我们新创的&#xff0c;AIGC低代码、AI低代码、智能开发、AI生成式开发、AIGS(AI生成软件)等等&#xff0c;这些概念已经呼之欲出了&#xff0c;不过还是觉得AI低…

Transformer:一种图灵完备的神经网络

点击下方卡片&#xff0c;关注“CVer”公众号 AI/CV重磅干货&#xff0c;第一时间送达 点击进入—>【Transformer】微信技术交流群 作者&#xff1a;张晨珩&#xff08;北京大学23级博士生&#xff09;已授权 https://zhuanlan.zhihu.com/p/611257510 论文: Attention is Tu…

什么是元宇宙?元宇宙在 2023 年将走向何方

2023 年&#xff0c;元宇宙是当今技术领域的热门话题。除了新兴的人工智能和物联网技术&#xff0c;元宇宙服务提供商也在争先恐后地进行创新&#xff0c;以提供企业和消费者解决方案。 元宇宙曾经是技术先驱和数据科学家的专属&#xff0c;现在正在扩大到影响每个人。这种环…

Midjourney|文心一格prompt教程[技巧篇]:生成多样性、增加艺术风格、图片二次修改、渐进优化、权重、灯光设置等17个技巧等你来学

Midjourney|文心一格prompt教程[技巧篇]&#xff1a;生成多样性、增加艺术风格、图片二次修改、渐进优化、权重、灯光设置等17个技巧等你来学 1.技巧一&#xff1a;临摹 我认为学习图片类的 prompt&#xff0c;跟学习画画是类似的&#xff0c;最好的学习方法不是直接用模板。…

新旧iphone短信转移,苹果旧手机短信导入新手机

短信携带重要信息内容&#xff0c;新旧iphone短信转移&#xff1f;您可能知道&#xff0c;iOS设备上不支持导出iPhone简讯&#xff0c;更不用说打印iPhone上的短信了。幸运的是&#xff0c;有一些可行的方法可以将iPhone短信导入到另一个iPhone&#xff0c;继续阅读以获得更多帮…

苹果手机怎么发语音短信?

说到语音&#xff0c;大家最熟悉的就是用微信发语音了&#xff0c;但是微信发语音的前提是必须是好友&#xff0c; 对于企业来说&#xff0c;使用范围还是受限&#xff0c;其实比微信语音应用范围广的就是语音短信&#xff0c;通过语音通知的新式&#xff0c;只要用户手机能正常…

iPhone苹果手机短信如何批量删除苹果iPhone手机短信?

iPhone苹果手机短信如何批量删除苹果iPhone手机短信&#xff1f; 1、iPhone苹果手机短信较多&#xff0c;如何才能快捷的批量删除苹果iPhone手机短信。 2、打开苹果iPhone手机设置&#xff1b; 3、在iPhone苹果手机设置内找到通用并点击进入&#xff1b; 4、在苹果iPhone手机设…

苹果手机短信如何转入Android手机,苹果手机怎么将短信备份导入到安卓手机?...

iPhone手机的短信无法直接导入安卓手机&#xff0c;在将苹果手机换为安卓手机时&#xff0c;短信往往无法迁移&#xff0c;这让我们很苦恼。小编试了QQ同步助手&#xff0c;百度网盘等同步类软件&#xff0c;往往只能备份通讯录&#xff0c;而无法备份短信。本文将介绍怎么样通…

小智AI教你制造业中如何应用ChatGPT实现智能化生产

制造业是现代社会经济发展的关键行业之一。然而&#xff0c;在制造业的生产过程中&#xff0c;存在着许多的瓶颈和问题&#xff0c;比如人力资源不足、生产线效率低下、生产成本高昂等等。这些问题导致制造业在生产效率、生产质量等方面面临着诸多挑战&#xff0c;因此&#xf…

ChatGPT Creator 刚刚启动了一个 AI 检测器,我们最终能否检测到 AI 编写的内容?

在过去的几个月里,我们看到许多工具都在尝试检测 AI 编写的文本。 然而,就在昨天,ChatGPT 背后的公司 OpenAI 推出了自己的文本分类器,旨在区分人工智能编写的文本和人类编写的文本。这是一个有一些限制的免费工具,但它仍然可以帮助您检测某些内容是否由 AI 编写。 我已…

Meta带头甩卖 VR头显打起价格战

新春三月&#xff0c;准备入手VR头显的“等等党”终于迎来降价利好。以Meta为首的一众VR厂商们纷纷打折&#xff0c;无论是为了清理库存、回收成本还是让步硬件新品&#xff0c;普通消费者都喜闻乐见。 上周五&#xff0c;Meta 率先官宣Meta Quest Pro与Meta Quest 2 的256GB版…

【青少年编程】【三级】打气球游戏

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…