作用:可以为一个元素在不同状态之间切换得时候添加过渡效果
属性名:transition(复合属性)
属性值:过渡得属性 花费时间(s)
注意:
作用:为元素添加动态效果,一般与过渡配合使用
概念:改变盒子在平面内的形态
属性名:transform
属性值:平移(translate)、旋转(rotate)、缩放(scale)、倾斜(skew)
transform: translate(X轴移动距离, Y轴移动距离);
平移既可以用来当过渡效果使用,也可以用来当定位使用
注意的是,其百分比参照自身尺寸计算
transform: rotate(旋转角度);
transform: translate() rotate();
当需要平移和旋转两种效果时,必须采用复合写法,且要保持先平移再旋转
写两个transform属性后者效果会覆盖前者
多重转换是以第一种转换方式坐标轴为准转换形态,旋转会改变网页元素的坐标轴向
如果先写旋转,则后面的转换效果的轴向以旋转后的轴向为准,会影响转换结果
transform: scale(缩放倍数);
transform: scale(X轴缩放倍数, Y轴缩放倍数);
transform: skew(旋转度数);
取值为角度度数,角度单位为 deg
默认情况下,转换原点是盒子中心点
transform-origin: 水平原点位置 垂直原点位置;
取值:
background-image: radial-gradient()
属于背景颜色的一种,效果为多个颜色渐变过渡
background-image: linear-gradient(
渐变方向,
颜色1 终点位置,
颜色2 终点位置,
......
);
取值:
/* 从上到下,蓝色渐变到红色 */
background-image: linear-gradient(blue, red);
/* 渐变轴为45度,从蓝色渐变到红色 */
background-image: linear-gradient(45deg, blue, red);
/* 从右下到左上、从蓝色渐变到红色 */
background-image: linear-gradient(to left top, blue, red);
/* 从下到上,从蓝色开始渐变、到高度40%位置是绿色渐变开始、最后以红色结束 */
background-image: linear-gradient(0deg, blue, green 40%, red);
/*透明到半透明的渐变,注意:技术上,transparent 为 rgba(0,0,0,0) 的缩写。*/
background-image: linear-gradient(transparent,rgba(0,0,0,0.5));
background-image: radial-gradient(
半径 at 圆心位置,
颜色1 终点位置,
颜色2 终点位置,
......
);
取值:
空间:是从坐标轴角度定义的 X 、Y 和 Z 三条坐标轴构成了一个立体空间,Z 轴位置与视线方向相同。
空间转换也叫 3D转换
属性:transform
属性值:同平面转换类似,多了个z轴
坐标轴取值的正负:向前、向下、向右为正
transform: translate3d(x, y, z);
transform: translateX();
transform: translateY();
transform: translateZ();
取值与平面转换相同
默认情况下,Z 轴平移没有效果,原因:电脑屏幕默认是平面,无法显示 Z 轴平移效果
作用:指定了观察者与 Z=0 平面的距离,为元素添加透视效果
透视效果:近大远小、近实远虚
属性:(添加给父级,取值范围 800-1200)
perspective: 视距;
transform: rotate3d(x, y, z, 角度度数);
rotateX()
rotateY()
rotateZ()
rotate3d(x, y, z, 角度度数) :用来设置自定义旋转轴的位置及旋转的角度
x,y,z 取值为0-1之间的数字
作用:设置元素的子元素是位于 3D 空间中还是平面中
属性名:transform-style
属性值:
实现一个立方体
.box {
position: relative;
width: 200px;
height: 200px;
margin: 200px auto;
transition: all 2s;
transform-style: preserve-3d;
perspective: 1000px;
}
.box:hover {
transform: rotateX(-180deg) scale3d(2,2,2);
}
.box div {
position: absolute;
left: 0;
top: 0;
width: 200px;
height: 200px;
}
.front {
background-color: salmon;
transform: translateZ(100px);
}
.back {
background-color: hotpink;
transform: translateZ(-100px);
}
.left {
background-color: rgb(40, 173, 40);
transform: rotateY(90deg) translateZ(100px);
}
.right {
background-color: rgb(99, 70, 70);
transform: rotateY(90deg) translateZ(-100px);
}
.top {
background-color: rgb(40, 153, 173);
transform: rotateX(90deg) translateZ(100px);
}
.bottom {
background-color: rgb(106, 36, 237);
transform: rotateX(90deg) translateZ(-100px);
}
<div class="box">
<div class="front"></div>
<div class="back"></div>
<div class="left"></div>
<div class="right"></div>
<div class="top"></div>
<div class="bottom"></div>
</div>
transform: scale3d(x, y, z);
transform: scaleX();
transform: scaleY();
transform: scaleZ();
过渡效果与动画效果区别:
过渡:实现两个状态间的变化过程
动画:实现多个状态间的变化过程,动画过程可控(重复播放、最终画面、是否暂停)
1、定义
/* 方式一 */
@keyframes 动画名称 {
from {
}
to {
}
}
/* 方式二 */
@keyframes 动画名称 {
0% {
}
10% {
}
......
100% {
}
}
两种定义取决于你需要的动画需要几步,若只有两步,则使用方式一,两步以上则用方式二
2、使用
使用属性加给自身,谁需要动画效果就加在谁身上
animation: 动画名称 动画花费时长;
animation: 动画名称 动画时长 速度曲线 延迟时间 重复次数 动画方向 执行完毕时状态;
/*多组动画*/
animation:
动画一,
动画二,
... ...
;
注意:
- 动画名称和动画时长必须赋值
- 取值不分先后顺序
- 如果有两个时间值,第一个时间表示动画时长,第二个时间表示延迟时间
- 多组动画中间逗号隔开
.box {
width: 200px;
height: 100px;
background-color: pink;
/* linear:匀速 */
animation: change 1s linear;
/* steps(n):分步动画,分n步,工作中,配合精灵图实现精灵动画 */
animation: change 1s steps(3);
/* 如果有两个时间,第一个是动画时长,第二个是延迟时间 */
animation: change 1s 2s;
/* 重复次数,infinite:无限循环 */
animation: change 1s 3;
animation: change 1s infinite;
/* alternate:反向 */
animation: change 1s infinite alternate;
/* 动画执行完毕时的状态, forwards:结束状态; backwards:开始状态(默认) */
animation: change 1s forwards;
animation: change 1s backwards;
/*多组动画同时实行*/
animation:
change 1s,
move 1s;
}
/* 宽度 从 200 变化到 800 */
@keyframes change {
from {
width: 200px;
}
to {
width: 800px;
}
}
@keyframes move {
/*初始状态和原状态相同时,可以省略
from{
transform: translate(0);
}*/
to{
transform: translate(200px);
}
}
属性 | 作用 | 取值 |
---|---|---|
animation-name | 调用的动画名称 | 名称 |
animation-duration | 需要运行动画的时间 | 时间s |
animation-delay | 延迟多久启动动画 | 时间s |
animation-fill-mode | 动画执行完毕时的状态 | backwards:开始时状态 forwards:结束时状态 |
animation-timing-function | 速度曲线 | linear steps(数字):逐帧动画 |
animation-iteration-count | 重复次数 | infinite:无限重复 |
animation-direction | 动画运动方向 | alternate:正向结束后反向 |
animation-play-state | 暂停动画 | paused:暂停,可配合:hover |
* {
margin: 0;
padding: 0;
}
.box {
margin: 200px auto;
height: 80px;
width: 600px;
border: 1px solid black;
overflow: hidden;
}
.box ul {
display: flex;
/* transition: all 2s; */
animation: move 2s linear infinite;
}
.box ul li {
list-style: none;
}
@keyframes move {
from{
transform: translate(0);
}
to{
transform: translate(-1400px);
}
}
.box ul li div {
height: 80px;
width: 200px;
}
<div class="box">
<ul>
<li><div style="background-color: rgb(244, 188, 116);"></div></li>
<li><div style="background-color: rgb(241, 139, 6);"></div></li>
<li><div style="background-color: rgb(200, 245, 23);"></div></li>
<li><div style="background-color: rgb(215, 250, 242);"></div></li>
<li><div style="background-color: rgb(215, 221, 250);"></div></li>
<li><div style="background-color: rgb(250, 215, 238);"></div></li>
<li><div style="background-color: rgb(244, 9, 75);"></div></li>
/*预留重复补充,补充的大小刚好填充展示的区域*/
<li><div style="background-color: rgb(244, 188, 116);"></div></li>
<li><div style="background-color: rgb(241, 139, 6);"></div></li>
<li><div style="background-color: rgb(200, 245, 23);"></div></li>
</ul>
</div>
文章浏览阅读807次。扩展。_jmap 在线分析
文章浏览阅读1.1w次。随着炎热夏季的到来,当玩游戏正爽的时候,电脑突然死机了,自动关机了,是不是有想给主机一脚的冲动呢?这个很大的原因是因为CPU温度过高导致的。很多新手玩家可能都有一个疑虑,cpu温度多少以下正常?有些说是60,有些说是70,到底多高CPU温度不会死机呢?首先我们先看看如何查看CPU的温度。下载鲁大师并安装,运行鲁大师软件,即可进入软件界面,并点击温度管理,即可看到电脑各个硬件的温度。鲁大师一般情况下..._台式机玩游戏温度多少正常
文章浏览阅读243次。Day2-打印打印打印!我终于更新了!(哭腔)一、 最简单的打印最最简单的打印语句: print(“打印内容”)注意:python是全英的,符号记得是半角下面是我写的例子:然后进入power shell ,注意:你需要使用cd来进入你保存的例子的文件夹,保存时名字应该取为xxx.py我终于知道为什么文件夹取名都建议取英文了,因为进入的时候是真的很麻烦!如果你没有进入正确的文件夹..._puthon打印任务收获
文章浏览阅读1k次。centos8问题参考CentOS 8 EOL如何切换源? - 云服务器 ECS - 阿里云_"cenerrors during download metadata for repository \"appstream"
文章浏览阅读2.7k次,点赞3次,收藏11次。SpringBoot+Maven+MabatisPlusmaven在新建springboot项目引入RELEASE版本出错maven在新建springboot项目引入RELEASE版本出错maven详解maven就是通过pom.xml中的配置,就能够从仓库获取到想要的jar包。仓库分为:本地仓库、第三方仓库(私服)、中央仓库springframework.boot:spring-boot-starter-parent:2.2.1.RELEASE’ not found若出现jar包下载不了只有两_基于微服务的在线教育平台尚硅谷
文章浏览阅读1k次。数据库备份的方法第一种:使用mysqldump结合exec函数进行数据库备份操作。第二种:使用php+mysql+header函数进行数据库备份和下载操作。下面 java 实现数据库备份的方法就是第一种首先我们得知道一些mysqldump的数据库备份语句备份一个数据库格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 ..._java数据备份
文章浏览阅读2.6k次。iOS中定时器有三种,分别是NSTimer、CADisplayLink、dispatch_source,下面就分别对这三种计时器进行说明。一、NSTimerNSTimer这种定时器用的比较多,但是特别需要注意释放问题,如果处理不好很容易引起循环引用问题,造成内存泄漏。1.1 NSTimer的创建NSTimer有两种创建方法。方法一:这种方法虽然创建了NSTimer,但是定时器却没有起作用。这种方式创建的NSTimer,需要加入到NSRunLoop中,有NSRunLoop的驱动才会让定时器跑起来。_ios nstimer
文章浏览阅读4.8k次,点赞17次,收藏51次。Linux的命令有几百个,对程序员来说,常用的并不多,考虑各位是初学者,先学习本章节前15个命令就可以了,其它的命令以后用到的时候再学习。1、开机 物理机服务器,按下电源开关,就像windows开机一样。 在VMware中点击“开启此虚拟机”。2、登录 启动完成后,输入用户名和密码,一般情况下,不要用root用户..._ls-lmore
文章浏览阅读4.1k次。1.登录MYSQL系统命令打开DOS命令框shengfen,以管理员的身份运行命令1:mysql -u usernae -p password命令2:mysql -u username -p password -h 需要连接的mysql主机名(localhost本地主机名)或是mysql的ip地址(默认为:127.0.0.1)-P 端口号(默认:3306端口)使用其中任意一个就OK,输入命令后DOS命令框得到mysql>就说明已经进入了mysql系统2. 查看mysql当中的._mysql -u user
文章浏览阅读484次。一、lvs简介和推荐阅读的资料二、lvs和keepalived的安装三、LVS VS/DR模式搭建四、LVS VS/TUN模式搭建五、LVS VS/NAT模式搭建六、keepalived多种real server健康检测实例七、lvs持久性工作原理和配置八、lvs数据监控九、lvs+keepalived故障排除一、LVS简介和推荐阅读的资料 学习LVS+Keepalived必须阅读的三个文档。1、 《Keepalived权威指南》下载见http://..._this is the redundant configuration for lvs + keepalived server itself
文章浏览阅读795次,点赞20次,收藏15次。AIDL是使用bind机制来工作。java原生参数Stringparcelablelist & map 元素 需要支持AIDL其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。下图是我进阶学习所积累的历年腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
文章浏览阅读248次。承接:数据基础02