CSS过渡、2D转换和动画
目录
一、css过渡
1、过渡的定义
2、语法规则
3、transiton常用子属性
二、2D转换
1 css的转换
2 语法规则
3 2D转换常用函数
三、css动画
1、css动画的定义
2、关键帧
3 animation属性
四、综合实例
4.1 代码
4.2 效果视频
思维导图:

一、css过渡
1、过渡的定义
CSS3 过渡是元素从一种样式逐渐改变为另一种的效果,即CSS 过渡允许您在给定的时间内平滑地改变属性值。
2、语法规则
选择器{
transition:property duration timing-function delay
}
tansition属性用于实现简单的动画效果;
transition属性是一个复合属性,主要包含property、duration、timing-function、delay等子属性。
实例:实现的效果是当鼠标悬停在50*50的正方形块上时方块变大,光标移开逐渐变回原始样式。
div {
/*100px * 100px 的红色 元素。 元素还为 width 属性和height属性指定了过渡效果,持续时间为 2 秒和4秒*/width: 50px;height: 50px;background: red;transition: width 2s, height 4s;}div:hover {/*为 width 属性和height属性指定一个鼠标悬停在 元素上时的新值*/width: 250px;height: 250px;}
3、transiton常用子属性
| 属性 | 描述 |
|---|---|
| transition | 简写属性,用于将四个过渡属性设置为单一属性。 |
| transition-delay | 规定过渡效果的延迟(以秒计)。 |
| transition-duration | 规定过渡效果要持续多少秒或毫秒。 |
| transition-property | 规定过渡效果所针对的 CSS 属性的名称。 |
| transition-timing-function | 规定过渡效果的速度曲线。 |
3.1 property:规定应用过渡的CSS属性的名称
取值:
- none:没有属性会获得过渡效果
- all:默认值,所有属性获得过渡效果
3.2 duration:定义过渡效果花费的时间
取值:
time值:以秒或毫秒计,默认是0,意味着没有任何效果
3.3 timing-function:规定过渡效果的时间曲线
取值:
linear:规定以相同速度开始至结束的过渡效果
ease:规定慢速开始,然后变快,然后慢速结束的过渡效果
ease-in:规定以慢速开始的过渡效果
ease-out:规定以慢速结束的过渡效果
ease-in-out:规定以慢速开始和结束的过渡效果
cubic-bezier(n,n,n,n):在 cubic-bezier 函数中定义自己的值
实例:展示了可以使用的一些不同的速度曲线:
#div1 {transition-timing-function: linear;}
#div2 {transition-timing-function: ease;}
#div3 {transition-timing-function: ease-in;}
#div4 {transition-timing-function: ease-out;}
#div5 {transition-timing-function: ease-in-out;}
3.4 delay:规定开始之前需要等待的时间
取值:
time值:以秒或毫秒计,默认是0
实例:启动之前有2秒的延时
div {transition-delay: 2s;
}
二、2D转换
1 css的转换
transform属性允许对元素应用2D转换,CSS 转换可以对元素进行移动、缩放、转动、拉长或拉伸
2 语法规则
选择器{ transform:none | transiform-functions }
上面的tansform-functions:用于设置变形函数,可以是一个或多个变形函数列表
3 2D转换常用函数
| 函数名 | 描述 | 参数说明 |
| rotate(angel) | 旋转元素 | Angel是度数值,代表旋转角度 |
| skew(x-angel,y-angel) | 倾斜元素 | |
| skewX(angel) | 沿着X轴倾斜 | |
| skewY | 沿着Y轴倾斜 | |
| scale(x,y) | 缩放元素,改变元素的高度和宽度 | 代表缩放比例,取值包含正数、负数和小数 |
| scaleX | 改变元素的宽度 | |
| scaleY | 改变元素的高度 | |
| translate(x,y) | 移动元素对象,基于x和y坐标重新定位元素 | 元素移动的数值,x代表左右方向,y代表上下方向,向左和向上使用负数,向右和向下使用正数。 |
| translateX(x) | 沿着x轴移动元素 | |
| translateY(y) | 沿着Y轴移动元素 |
3.1 rotate() 方法根据给定的角度顺时针或逆时针旋转元素(负值即逆时针旋转)。
实例:顺时针旋转20度
div {transform: rotate(20deg);
}
3.2 scale()方法,该元素增加或减少元素的大小,取决于宽度(X轴)和高度(Y轴)的参数
实例:
div {transform: scale(3, 4);/*元素增大为其原始宽度的3倍和其原始高度的4倍*/transform: scale(0.5, 0.5);/*元素减小为其原始宽度和高度的一半*/}
3.3 skew() 方法使元素沿 X 和 Y 轴倾斜给定角度
实例:
div {transform: skew(30deg, 20deg);/*元素在x轴方向倾斜30度,在y轴方向倾斜20度*/
}
3.4 translate() 方法,从其当前位置移动元素(根据为 X 轴和 Y 轴指定的参数)
实例:
div
{/*从左边元素移动50个像素,并从顶部移动100像素。*/transform: translate(50px,100px);
}
三、css动画
1、css动画的定义
动画使元素逐渐从一种样式变为另一种样式,可以随意更改任意数量的 CSS 属性,如需使用 CSS 动画,必须首先为动画指定一些关键帧,该关键帧包含元素在特定时间所拥有的样式。
2、关键帧
2.1 关键帧表示动画过程中的一个状态,多个关键帧就可以形成一组绚丽的动画。
2.2 关键帧语法规则
@keyframes animationname{
keyframes-selector{css-style}
}
其中:
- animationname是当前动画的名称;
- keyframes-selector:是关键帧选择器
- css-style:当前关键帧的动画状态;
3 animation属性
3.1 animation属性,用于设置动画的名称、时间、时间曲线等属性,它是一个复合属性;
3.2 语法规则
选择器{ animation:name|duration|timing-function|delay|iteration-count }
3.3 animation子属性
3.3.1 animation-name:规定@keyframes动画的名称
取值:
keyframe name:规定需要绑定到选择器的keyframe的名称
none:规定无动画效果(可用于覆盖来自级联的动画)
3.3.2 animation-duration:规定动画完成一个周期所花费的时间
取值:
time值:以秒或者毫秒计算,默认是0
3.3.3 animation-timing-function:规定过渡效果的时间曲线
取值:
linear:规定以相同速度开始至结束的过渡效果
ease:规定慢速开始,然后变快,然后慢速结束的过渡效果。
ease-in:规定以慢速开始的过渡效果
ease-out:规定以慢速结束的过渡效果 ease-in-out:规定以慢速开始和结束的过渡效果
cubic-bezier(n,n,n,n):在 cubic-bezier 函数中定义自己的值。
3.3.4 animation-delay:规定开始之前需要等待的时间
取值:
time值:以秒或毫秒计,默认是0
3.3.5 animation-iteration-count:规定动画播放的次数
取值:
n:定义动画播放次数的数值,默认为1
infinite:规定动画应该为无限次播放
四、综合实例
4.1 代码
图片排列

猫和老鼠

猫和老鼠

猫和老鼠

猫和老鼠
4.2 效果视频
实例效果图
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
