transform三大属性 rotate、scale、translate
transform三大属性 rotate、scale、translate
1、菜鸟教程demo:https://c.runoob.com/codedemo/3391
2、搭配 transform-orgion(动画基点)使用:https://blog.csdn.net/weixin_44167504/article/details/108418195?spm=1001.2014.3001.5501
transform三大属性:rotate(旋转) 、 scale(缩放) 、 translate(移动)
其他属性:skew(扭曲) 、 matrix(矩阵变形)
语法:transform:rotate | scale | skew | translate |matrix;
一. 移动translate
translate()相当于水平平移,+ 表示向右/下,- 表示向左/上
translateX(x)水平方向平移
translateY(y)垂直方向平移
translateZ(z)相当于放大
translate(x,y)相当于水平平移+垂直平移
translate(x,y,z)相当于水平平移+垂直平移+放大
- translate(100px)实际上是水平向右平移100px
- translateX(100px)水平向右平移100px
- translateY(100px)水平向下平移100px
- translateZ(100px)相当于放大
- translate(x,y)2D平移,translate(100px,100px)右、下各平移100px
6. translate3d(20px,20px,100px) 右、下各平移20并放大
二. 旋转rotate效果图
rotate(angle)定义2D旋转
rotateX(angle)
rotateY(angle)
rotateZ(angle)
rotate3d(angle)定义3d旋转
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>transform</title>
<style>
body {
background: #F5F3F4;
margin: 0;
padding: 10px;
font-family: 'Open Sans', sans-serif;
text-align: center;
}
.card {
display: inline-block;
margin: 10px;
background: #fff;
padding: 15px;
min-width: 200px;
box-shadow: 0 3px 5px #ddd;
color: #555;
}
/* 背景 */
.card .box {
width: 100px;
height: 100px;
margin: auto;
background-color: #ddd;
cursor: pointer;
box-shadow: 0 0 5px #ccc;
-webkit-perspective: 1000px;
-moz-perspective: 1000px;
perspective: 1000px;
}
.card .box .fill {
width: 100px;
height: 100px;
position: relative;
transform-origin: center;
-webkit-transition: 0.3s;
transition: 0.3s;
background-color: skyblue;
}
/* rotate(45deg) */
.rotate:hover .fill {
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}
/* rotateX(45deg) */
.rotateX:hover .fill {
-webkit-transform: rotateX(45deg);
transform: rotateX(45deg);
}
/* rotateY(45deg) */
.rotateY:hover .fill {
-webkit-transform: rotateY(45deg);
transform: rotateY(45deg);
}
/* rotateZ(45deg) */
.rotateZ:hover .fill {
-webkit-transform: rotateZ(45deg);
transform: rotateZ(45deg);
}
/* transform: rotate3d(x,y,z,angle);*/
/* 角度为整数表示顺时针,角度为负表示逆时针 */
.rotate3d:hover .fill {
-webkit-transform: rotate3d(1, 0, 1, -180deg);
transform: rotate3d(1, 0, 1, -180deg);
}
</style>
</head>
<body>
<!--
transform三大属性:rotate(旋转)
scale(缩放)
translate(移动)
其他属性:skew(扭曲)
matrix(矩阵变形)
语法:transform:rotate | scale | skew | translate |matrix;
一、旋转rotate
rotate(angle)定义2D旋转
rotateX(angle)
rotateY(angle)
rotateZ(angle)
rotate3d(angle)定义3d旋转
-->
<!-- rotate(45deg) -->
<div class="card">
<div class="box rotate">
<div class="fill"></div>
</div>
<p>rotate(45deg)</p>
</div>
<!-- rotateX(45deg) -->
<div class="card">
<div class="box rotateX">
<div class="fill"></div>
</div>
<p>rotateX(45deg)</p>
</div>
<!-- rotateY(45deg) -->
<div class="card">
<div class="box rotateY">
<div class="fill"></div>
</div>
<p>rotateY(45deg)</p>
</div>
<!-- rotateZ(45deg) -->
<div class="card">
<div class="box rotateZ">
<div class="fill"></div>
</div>
<p>rotateZ(45deg)</p>
</div>
</body>
</html>
transform: rotate3d(1, 0, 1, -180deg);顺时针旋转消失
三. 缩放scale效果图
scale(数值)定义倍数缩放,>1放大,<1缩小
scaleX()通过x轴定义,仅水平方向缩放
scaleY()通过y轴定义,仅垂直方向缩放
scaleZ()通过z轴定义,定义3d缩放
transform: scale(2);放大两倍
transform: scaleX(2);水平方向放大两倍
transform: scaleY(2);垂直方向放大两倍
缩小同理。
更多推荐
所有评论(0)