《CSS揭秘》里面发现一个很独特的一个动画,使用纯css3动画让一个元素沿着环形路径运动。听起来有点不可思议,本文将带你一起走进作者的文章中,由复杂到简单,由多个结构到简单结构解剖CSS3语句实现环形运动。
具体动画样式演示:链接内容
其它辅助的CSS代码可以查阅一下演示代码源码。这里就不再写出了。
自身绕圆旋转
首先作者给出了一副头像图片沿着环形路径运动,需求是希望头像顺着头像顺着一个大圆以转圈的方式移动。关键代码如下:
<div class="box box2"><div class="ball">Ball</div></div>
@keyframes spin{
to{transform: rotate(1turn);}
}
.box2 .ball{
animation:spin 3s infinite linear;
transform-origin: 50% 150px;
}
绕圆旋转,内容不转
可以看到图1在球的中心点转圈,而图2则是绕着150px的半径在转圈的同时,自身也在旋转。效果看起来挺好,但有一个缺陷,就是自身也在转动,使得文字颠倒,无法看清,有没有办法做到只是沿着环形进行运动,同时自己保持原来的朝向呢?
需要两个元素的解决方法
作者想到了之前的一个案例“平行四边形”或者“菱形图片”中提到的“嵌套的两层变形会相互抵消”,这样就想到了用内层的变形来抵消外层的变形效果。