图片/图形

CSS3炫酷3D旋转立方体爆炸展开动画

阿里云


这是一款使用纯 CSS3 制作的炫酷 3D 旋转立方体爆炸展开动画特效。在这个 3D 旋转立方体爆炸展开动画特效中,当鼠标滑过立方体时,立方体的六个面会在不停旋转的同时向外爆炸展开,效果非常酷。CSS3 3d transformations、translations、rotations 和 animations 是非常酷的 CSS 新技术。你可以使用它们来为你的网页增加与众不同的动画效果。在这个 3D 旋转立方体展开动画特效中,当鼠标滑过立方体时,立方体的六个面会在不停旋转的同时向外爆炸展开,效果非常酷。请确保使用支持 CSS animations 和 3D transforms 的浏览器来查看这个插件。另外,在下面的代码中都没有使用浏览器厂商的前缀,实际使用时应该加上。

HTML 代码

下面的 html 代码只是外围展开的大立方体的代码,里面的小立方体的代码与之类似:

也想出现在这里?联系我们
创客主机
  1. <div class="wrap">
  2.   <div class="cube">
  3.     <div class="front">
  4.       Front side
  5.     </div>
  6.     <div class="back">
  7.       Back side
  8.     </div>
  9.     <div class="top">
  10.       Top side
  11.     </div>
  12.     <div class="bottom">
  13.       Bottom side
  14.     </div>
  15.     <div class="left">
  16.       Left side
  17.     </div>
  18.     <div class="right">
  19.       Right side
  20.     </div>
  21.   </div>
  22. </div>

CSS 样式

首先要为父元素设置 perspective:

  1. .wrap {
  2.   margin-top: 150px;
  3.   perspective: 1000px;
  4.   perspective-origin: 50% 50%;
  5. }

立方体的六个面都要设置为绝对定位,并且要在父元素上设置 transform-style: preserve-3d;,这样每个面才有立体效果(至于为什么可以参考 CSS3 3D transforms 系列教程-立方体)。

  1. .cube {
  2.   margin: auto;
  3.   position: relative;
  4.   height: 200px;
  5.   width: 200px;
  6.   transform-style: preserve-3d;
  7. }
  8.  
  9. .cube > div {
  10.   position: absolute;
  11.   box-sizing: border-box;
  12.   padding: 10px;
  13.   height: 100%;
  14.   width: 100%;
  15.   opacity: 0.9;
  16.   background-color: #000;
  17.   border: solid 1px #eeeeee;
  18.   color: #ffffff;
  19. }

下面要分别为面一个面设置旋转和中心点,使六个面组成立方体。

  1. .front {
  2.   transform: translateZ(100px);
  3. }
  4.  
  5. .back {
  6.   transform: translateZ(-100px) rotateY(180deg);
  7. }
  8.  
  9. .right {
  10.   transform: rotateY(-270deg) translateX(100px);
  11.   transform-origin: top right;
  12. }
  13.  
  14. .left {
  15.   transform: rotateY(270deg) translateX(-100px);
  16.   transform-origin: center left;
  17. }
  18.  
  19. .top {
  20.   transform: rotateX(-270deg) translateY(-100px);
  21.   transform-origin: top center;
  22. }
  23.  
  24. .bottom {
  25.   transform: rotateX(270deg) translateY(100px);
  26.   transform-origin: bottom center;
  27. }

使用相同的方法可以制作出更为复杂的 3D 图形。

旋转效果

要使立方体旋转起来,需要定义一个 X 轴和 Y 轴的从 0 度到 360 度的旋转,使它应用在立方体上,同时设置为无限循环模式。

  1. @keyframes rotate {
  2.   from {
  3.     transform: rotateX(0deg) rotateY(0deg);
  4.   }
  5.  
  6.   to {
  7.     transform: rotateX(360deg) rotateY(360deg);
  8.   }
  9. }
  10.  
  11. .cube {
  12.   animation: rotate 20s infinite linear;
  13. }

爆炸展开

为了制作鼠标滑过立方体爆炸展开的效果,可以为每一个面都添加一个 transition 过渡,分别使六个面向外移动 100 像素。

  1. .wrap:hover .front {
  2.   transform: translateZ(200px);
  3. }
  4.  
  5. .wrap:hover .back {
  6.   transform: translateZ(-200px) rotateY(180deg);
  7. }
  8.  
  9. .wrap:hover .right {
  10.   transform: rotateY(-270deg) translateZ(100px) translateX(100px);
  11. }
  12.  
  13. .wrap:hover .left {
  14.   transform: rotateY(270deg) translateZ(100px) translateX(-100px);
  15. }
  16.  
  17. .wrap:hover .top {
  18.   transform: rotateX(-270deg) translateZ(100px) translateY(-100px);
  19. }
  20.  
  21. .wrap:hover .bottom {
  22.   transform: rotateX(270deg) translateZ(100px) translateY(100px);
  23. }
  24. .cube > div {
  25.   transition: transform 0.2s ease-in;
  26. }

CSS3 炫酷 3D 旋转立方体爆炸展开动画

已有 662 人购买
查看演示升级 VIP立刻购买

演示地址 下载地址
收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!