SOURCE

console 命令行工具 X clear

                    
>
console
<div class="frame">
  <div class="center">
    <div class="ball-big">
      <div class="plane plane-1"></div>
      <div class="plane plane-2"></div>
      <div class="plane plane-3"></div>
      <div class="plane plane-4"></div>
      <div class="plane plane-5"></div>
      <div class="plane plane-6"></div>
    </div>
  </div>
</div>
@import url(https://fonts.googleapis.com/css?family=Open+Sans:700,300);

$numberOfPlanes: 6; // sync with html

.frame {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 400px;
	height: 400px;
	margin-top: -200px;
	margin-left: -200px;
	border-radius: 2px;
	box-shadow: 1px 2px 10px 0px rgba(0,0,0,0.3);
	overflow: hidden;
	background: #D33526;
	color: #fff;
	font-family: 'Open Sans', Helvetica, sans-serif;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.center {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	perspective: 1500px;
}

.ball-big {
	position: relative;
	width: 200px;
	height: 200px;
	animation: ball 7s ease-in-out infinite;
	transform-style: preserve-3d;

	.plane {
		position: absolute;
		width: 200px;
		height: 200px;
		top: 0;
		left: 0;
		background: #fff;
		border-radius: 50%;
		opacity: .3;
	}

	@for $i from 1 through $numberOfPlanes {
		$nullBase: $i - 1;
		$degree: (180 / $numberOfPlanes) * $nullBase;
		.plane-#{$i} {
			transform: rotateX( ($degree)+deg);
		}
	}

}

@keyframes ball {
	0% {
		transform: rotateY(0deg) rotateX(0deg) rotateZ(0deg);
	}
	25% {
		transform: rotateY(45deg) rotateX(180deg) rotateZ(20deg);
	}
	50% {
		transform: rotateY(225deg) rotateX(0deg) rotateZ(90deg);
	}
	75% {
		transform: rotateY(0deg) rotateX(45deg) rotateZ(120deg);
	}
	100% {
		transform: rotateY(0deg) rotateX(0deg) rotateZ(0deg);
	}
}