css动画——2D效果

2D transform 方法
函数描述
matrix(n,n,n,n,n,n)定义2D转换,使用六个值的矩阵
translate(x,y)定义2D转换,沿着X和Y轴移动
translateX(n)定义2D转换,沿着X轴移动
translateY(n)定义2D转换,沿着Y轴移动
scale(n,y)定义2D缩放转换,改变元素的宽度和高度
scaleX(n)定义2D缩放转换,改变元素的宽度
scaleY(n)定义2D缩放转换,改变元素的高度
rotate(angle)定义2D旋转,在参数中规定角度
skew(x-angle,y-angle)定义2D倾斜转换,沿着X轴和Y轴
skewX(angle)定义2D倾斜转换,沿着X轴
skewY(angle)定义2D倾斜转换,沿着Y轴

一、动画过渡transition

transition:2s linear all(变化完需要的时间,变化速度,延迟时间)

定义过度属性(跟数值变化有关的才能写)

transition-property:all 或 属性名,属性名

定义过度时间

transition-duration:2s transition:2s 2s(过度时间,延迟时间)

延迟多少时间开始

transition-delay:2s

过度的变化速度

  • transition-timing-function:
    • linear 匀速
    • ease 慢快慢
    • ease-in 慢开始
    • ease-out 慢结束
    • ease-in-out 慢开始慢结束
    • cubic-bezier 自定义(贝兹尔曲线)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>动画过度</title>
<style>
	div{width:100px;height:100px;background:#f99;margin-bottom:20px;}
	
	#d1{transition: 5s linear 3s;}
	#d2{transition: 5s ease all;}
	#d3{transition: 5s ease-in all;}
	#d4{transition: 5s ease-out all;}
	#d5{transition: 5s ease-in-out all;}
	#d6{transition: 5s cubic-bezier(.4, 1.9, .4, .5) all;}

	//div:hover{width:300px;}

</style>
</head>
<body>
	<div id="d1">linear</div>
	<div id="d2">ease</div>
	<div id="d3">ease-in</div>
	<div id="d4">ease-out</div>
	<div id="d5">ease-in-out</div>
	<div id="d6">cubic-bezier</div>
</body>

<script>
	setTimeout(function(){
	var oDiv=document.getElementsByTagName("div");
	for(var i=0;i<oDiv.length;i++){
		oDiv[i].style.width="300px";
	}
	},1000);
</script>
</html>

二、2D转换transform

注:2D转换加上transition: .5 linear效果更佳
正常: transform:rotate(15deg) scale(0.5,0.5) 顺时针旋转15度,水平垂直缩小二分之一

translate() 移动

  • 通过translate(),元素从其当前位置移动,根据给定的left(x坐标)和top(y坐标)位置参考
    transform:translate(20px.20px) X轴和Y轴各移动20px

rotate() 旋转

  • 通过rotate()方法,元素顺时针旋转给定的角度,允许负值,元素将逆时针旋转
    transform:rotate(15deg) 顺时针旋转15度,不支持ie8

scale() 缩放

  • 通过scale()方法,元素的尺寸会增加或减少,根据给定的宽度(x轴)和高度(y轴)参数
    transform:scale(2,1) 水平放大两倍,垂直放大一倍
    transform:scale(.5,.5) 水平垂直缩小二分之一

skew() 倾斜

  • 通过skew()方法,元素倾斜给定的角度,根据给定的水平线(x轴)和垂直线(y轴)参数
    transform:skew(15deg,15deg) x轴和y轴倾斜15度

matrix() 合体写法(矩阵)

  • matrix()方法把所以2D转换方法组合在一起,一般需要六个参数,包含属性函数,允许:旋转、缩放、移动以及倾斜元素
  • 缩放X,tan(X度),tan(Y度),缩放Y,位置X,位置Y
    transform:matrix(1.2,1,0,1,10,10)

三、渐变

线性渐变linear-gradient(方向[可选],颜色1,颜色2)

//css
	div{width:200px;height:200px;margin-bottom:20px;}
	#d1{
	background: -webkit-linear-gradient(top,#f00,#00f);
	background: -moz-linear-gradient(top,#f00,#00f);
	}
	#d2{
	background: -webkit-linear-gradient(left, #f00 50%, #00f);	
	background: -moz-linear-gradient(left, #f00 50%, #00f);
	}
	#d3{
	background: -webkit-linear-gradient(top, #f00, #00f,#ff0);
	background: -moz-linear-gradient(top, #f00,#f80,#ff0,#0f0,#0ff,#00f,#f0f);
	}
//body
	<div id="d1"></div>
	<div id="d2"></div>
	<div id="d3"></div>

在这里插入图片描述

  • 就是一个方向到另一个方向笔直进行渐变

径向渐变radial-gradient(正圆椭圆[可选],颜色1,颜色2)

  • 从起点到终点颜色从内到外进行圆形渐变
  • circle:渐变为最大的圆形
  • ellipse:(椭圆)根据元素形状渐变,元素为正方形是显示效果,与circle无意
//css
	div{width:200px;height:200px;margin-bottom:20px;}
	#d4{width:400px;
	background: -webkit-radial-gradient(circle, #f00, #00f);
	background: -moz-radial-gradient(circle at 0% 0%, #f00, #00f);
	}
	#d5{width:400px;
	background: -webkit-radial-gradient(ellipse, #f00, #00f);
	background: -moz-radial-gradient(ellipse at 0% 0%, #f00, #00f);
	}
//body
	<div id="d4"></div>
	<div id="d5"></div>

在这里插入图片描述

重复渐变repeating-radial-gradient

  • 会按照规律一层一层循环
//css
	#d6{
	background: -webkit-repeating-radial-gradient(circle, #f00 10%, #f70 11%,#ff0 12% ,#0f0 13% ,#0ff 14%,#00f 15%,#f0f 16%);
	background: -moz-repeating-radial-gradient(circle, #f00 10%, #f70 11%,#ff0 12% ,#0f0 13% ,#0ff 14%,#00f 15%,#f0f 16%);
	}
	#d7{
	background: -webkit-repeating-linear-gradient(left, #f00 10%, #f70 11%,#ff0 12% ,#0f0 13% ,#0ff 14%,#00f 15%,#f0f 16%);
	background: -moz-repeating-linear-gradient(left, #f00 10%, #f70 11%,#ff0 12% ,#0f0 13% ,#0ff 14%,#00f 15%,#f0f 16%);
	}
//body
	<div id="d6"></div>
	<div id="d7"></div>

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值