1、前半程为左边红色旋转一周,后半程为粉色旋转一周。动画实现如下:
/*左边红色完成第一圈的旋转*/ @keyframes ltRound { 0% { transform: rotate(360deg); } 24.9% { z-index: 3; } 25% { z-index: 1; transform: rotate(180deg); } 50% { transform: rotate(0deg); } 74.9% { z-index: 1; } 75%, 100% { z-index: 3; } } /*右边红色圆通过z-index来控制显示和隐藏,从而达到在适当时间配上左半圆的效果*/ @keyframes rtRound { 0%, 24.9% { z-index: 1; } 25% { z-index: -3; } 74.9% { z-index: -3; } 75%, 100% { z-index: 1; } } /*左边粉色完成第二圈的旋转*/ @keyframes ltMask { 0%, 25%, 50% { transform: rotate(360deg); } 75% { transform: rotate(180deg); } 100% { transform: rotate(0deg); } }
2.在全部代码未完成时,可以将动画时间设大一点,这样便于观察,搞完了再设回去就OK了。
3.由于动画是匀速变化的,但是z-index的值不能匀速变化,所以只能在某个很短时间内去改变z-index的值。这样才能达到效果(突然感觉这种实现好像也不是很好)
小结
没做兼容,在chrome中无异常,别的我就不太知道了
源码地址
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。