超绚丽CSS3多色彩发光立方体旋转动画

CSS3添加了几个动画效果的属性,通过设置这些属性,可以做出一些简单的动画效果而不需要再去借助JavaScriptcss3动画的属性主要分为三类:transform、transition以及animation。

下面就是用CSS3动画animation做的立方体旋转动画

例图:

  

代码如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
body {
  margin: 0;
  overflow: hidden;
  width: 100vw;
  height: 100vh;
  background: #222;
}
.world {
  -webkit-perspective: 800px;
  perspective: 800px;
  width: 100vh;
  height: 100vh;
  position:absolute;
  left:40%;
  top:35%;
}
.cube {
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  width: 50vh;
  height: 50vh;
  position: relative;
  -webkit-animation: rotator 4.5s linear infinite;
  animation: rotator 4.5s linear infinite;
  outline: 0;
}
.cube * {
  background: #000;
  box-shadow: 0 0 3vh currentColor;
  -webkit-transition: background 0.4s ease-in-out, box-shadow 0.4s ease-in-out;
  transition: background 0.4s ease-in-out, box-shadow 0.4s ease-in-out;
}
.cube:hover * {
  background: currentColor;
  box-shadow: 0 0 20vh currentColor;
}
.cube .cube__front {
  color:orange;
  -webkit-transform: translateZ(25vh);
  transform: translateZ(25vh);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.cube .cube__right {
  color:purple;
  -webkit-transform: rotateY(90deg) translateZ(25vh);
  transform: rotateY(90deg) translateZ(25vh);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.cube .cube__left {
  color: pink;
  -webkit-transform: rotateY(270deg) translateZ(25vh);
  transform: rotateY(270deg) translateZ(25vh);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.cube .cube__back {
  color: seagreen;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-transform: rotateY(180deg) translateZ(25vh);
  transform: rotateY(180deg) translateZ(25vh);
}
.cube .cube__top {
  color: mediumseagreen;
  -webkit-transform: rotateX(90deg) translateZ(25vh);
  transform: rotateX(90deg) translateZ(25vh);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.cube .cube__bottom {
  color: dodgerblue;
  -webkit-transform: rotateX(270deg) translateZ(25vh);
  transform: rotateX(270deg) translateZ(25vh);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

@-webkit-keyframes rotator {
0% {
  -webkit-transform: rotateX(0deg) rotateY(0deg);
  transform: rotateX(0deg) rotateY(0deg);
}
100% {
  -webkit-transform: rotateX(360deg) rotateY(360deg);
  transform: rotateX(360deg) rotateY(360deg);
}
}

@keyframes rotator {
0% {
  -webkit-transform: rotateX(0deg) rotateY(0deg);
  transform: rotateX(0deg) rotateY(0deg);
}
100% {
  -webkit-transform: rotateX(360deg) rotateY(360deg);
  transform: rotateX(360deg) rotateY(360deg);
}
}
</style>
</head>
<body>
<div class="world">
  <div class="cube" tabindex="0">
  <div class="cube__front"></div>
  <div class="cube__back"></div>
  <div class="cube__left"></div>
  <div class="cube__right"></div>
  <div class="cube__top"></div>
  <div class="cube__bottom"></div>
</div>
</div>
</body>
</html>
 -webkit-perspective    
浏览器支持
目前浏览器都不支持 perspective 属性。
Chrome 和 Safari 支持替代的 -webkit-perspective 属性。
perspective 属性定义 3D 元素距视图的距离,以像素计。该属性允许您改变 3D 元素查看 3D 元素的视图。
-webkit-transform-style: preserve-3d;  属性规定如何在 3D 空间中呈现被嵌套的元素。
Firefox 支持 transform-style 属性。
Chrome、Safari 和 Opera 支持替代的 -webkit-transform-style 属性。
CSS3 Animation最大的优点是解决了:
    transition动画只能定义开始状态和结束状态,不能定义中间状态,也就是说只有两个状态。
    CSS 3Animation就是为了解决这些问题而提出
posted on 2017-06-20 13:44  (代码小工)  阅读(520)  评论(0编辑  收藏  举报