CSS3 transform

发布时间 2023-06-08 11:09:34作者: 天宁哦

Transform

Transform字面上就是变形,改变的意思。

transform : none | <transform-function> [ <transform-function> ]
transform: rotate | scale | skew | translate |matrix;

旋转rotate、扭曲skew、缩放scale和移动translate以及矩阵变形matrix

transform-origin 设置旋转拉伸的中心点

坐标中心点就是左下角位置。于是动画(例如图片收缩)就是基于左下角这一点了

transform-origin: bottom left;

中心点位置由中间移到了距离左侧50像素,顶部70像素的地方

transform-origin: 50px 70px;

rotate(angle) 旋转

从原点(由tranform-origin属性指定)开始顺时针旋转一个特定角度。

transform: rotate(45deg);

scale缩放

sx横轴缩放,sy纵轴缩放。若sy未指定,默认认为和sx相同。
scaleX(sx) 横轴缩放。等同scale(sx, 1)。
scaleY(sy) 纵轴缩放。等同scale(1, sy)。

/* x轴和y轴缩放比例相同都是2倍 */
transform: scale(2);

/* 横轴缩放2倍 */
transform: scaleX(2);

/* 纵轴缩放2倍 */
transform: scaleY(2);

skew(ax[, ay]) 倾斜扭曲

以原点(tranform-orgin属性指定)为中心,在X轴和Y轴以指定的角度倾斜。若ay未指定,在Y轴上木有倾斜。
细心的同学可能会发现,使用skew也可以实现rotate效果。
skewX(angle)。在X轴方向以一定角度倾斜。
skewY(angle)。在Y轴方向以一定角度倾斜。

transform: skew(45deg, 45edg);
/* 在X轴方向以一定角度倾斜 */
transform: skewX(45deg);
/* 在Y轴方向以一定角度倾斜 */
transform: skewY(45deg);

translate 平移

如果ty木有指定,则默认为0;
translateX(tx)。在X轴方向平移。
translateY(ty)。在Y轴方向平移。

transform: translate(45px, 1em);
/* 在X轴方向平移 */
transform: translateX(45px);
/* 在Y轴方向平移 */
transform: translateY(45px);

matrix(a, c, b, d, tx, ty)

矩阵,这个略复杂
https://blog.csdn.net/weixin_44116302/article/details/122612261