transform-origin
transform-origin 属性更改元素变形的原点。例如,rotate()的transform-origin 是旋转的中心点 (这个属性的应用原理是先用这个属性的负值translate该元素,进行变形,然后再用这个属性的值把元素translate回去)。
语法
/* 单值语法 */ transform-origin: 20px; transform-origin: bottom; /* 双值语法 */ /* 用两个数字值先水平后垂直,用一个数值一关键字或两关键字不强求顺序 */ transform-origin: 5cm 3px; /* x-offset y-offset */ transform-origin: 3px left; /* y-offset x-offset-keyword */ transform-origin: left 3px; /* x-offset-keyword y-offset */ transform-origin: right top; /* x-offset-keyword y-offset-keyword */ transform-origin: top right; /* y-offset-keyword x-offset-keyword */ /* 三值语法 */ transform-origin: 3px 50% 5px; /* x-offset y-offset z-offset */ transform-origin: 3px left 5px; /* y-offset x-offset-keyword z-offset */ transform-origin: left 5px -3px; /* x-offset-keyword y-offset z-offset */ transform-origin: right bottom 20px; /* x-offset-keyword y-offset-keyword z-offset */ transform-origin: bottom right 20px; /* y-offset-keyword x-offset-keyword z-offset */
值
| 值 | 描述 |
|---|---|
| x-offset | <length>或<percentage>,规定变形中心距离盒模型左上角的水平偏移值。 |
| offset-keyword | left,right,top,bottom或center中之一,规定相对应的变形中心偏移。 |
| y-offset | <length>或<percentage>,规定变形中心距离盒模型左上角的垂直偏移值。 |
| x-offset-keyword | left,right或center中之一,规定相对应的变形中心偏移。 |
| y-offset-keyword | top,bottom或center中之一,规定相对应的变形中心偏移。 |
| z-offset | <length>,规定变形中心距离用户视线(z=0处)的偏移值。 |
例子
HTML
<div class="stage"> <div class="box"></div> </div>
CSS
.stage{width:100px;height:100px;}
.box {
width:50px; height:50px;
background:red;
animation:flipAround 4s infinite;
transform-origin:right;
}
@keyframes 'flipAround' {
25% {
transform-origin:right;
animation-mode:forwards;
transform:rotateY(-180deg);
}
25.001% {
transform-origin:bottom;
transform:translateX(50px);
}
50% {
transform-origin:bottom;
transform:translateX(50px) rotateX(-180deg);
}
50.001% {
transform-origin:left;
transform:translateX(50px) translateY(50px);
}
75% {
transform-origin:left;
transform:translateX(50px) translateY(50px) rotateY(180deg);
}
75.001% {
transform-origin:top;
transform:translateY(50px);
}
100% {
transform-origin:top;
transform:translateY(50px) rotateX(180deg);
}
}
执行结果
参考
相关页面