CSS transform-origin的理解

前言

最近作的一个烟花动画,就是烟花散开的动画,在动画的实现过程当中,主要在烟花旋转过程当中卡住了,后来发现主要对transform-origin属性理解不深,特意找了个例子来练习,加深了对属性的理解。html

transform-origin做用

这个属性是用来改变元素变形的原点,通常用来配合旋转来使用最多。接收参数可为一个、两个、三个。当为两个值,分别表明距离盒模型左侧的值,如transform-origin: 50px 50px;,表示该容器的旋转中心变为以盒模型左上角为原点,X和Y轴距离50px为原点进行旋转。
clipboard.pngweb

时钟时针的绘制

中间那个竖条为咱们最初始设置的,后面的均基于此进行旋转动画

clipboard.png

<div class="clock">
    <div class="hour"></div>
    <div class="hour"></div>
    <div class="hour"></div>
    <div class="hour"></div>
    <div class="hour"></div>
  </div>

从下面的CSS代码能够看出,咱们设置了旋转中心为第一个竖线的(3,105)px为原点进行旋转,这里的距离为距离盒模型左侧的值,理解这一点,就能够写出其余的时针了,而后分别旋转便可获得时针。因为不理解这里的取值时相对于哪一个位置进行计算的,于是踩了很多的坑。spa

CSScode

.hour {
  position: absolute;
  left: 105px;
  width: 6px;
  height: 50px;
  background-color: #000;
  border-radius:6px;
  -webkit-transform-origin:3px 105px; 
          transform-origin:3px 105px;
}
.hour:nth-child(2) {
  transform:rotate(45deg);
}
.hour:nth-child(3) {
  transform:rotate(90deg);
}
.hour:nth-child(4) {
  transform:rotate(-45deg);
}
.hour:nth-child(5) {
  transform:rotate(-90deg);
}

参考

MDNorm

相关文章
相关标签/搜索