CSS3实现旋转立方体

轻松实现带图片旋转立方体盒子

需要使用 transform,@keyframes, animation这三个重要的属性

  1. 实现基本的布局,让父盒子成为3D的舞台,让父盒子X,Y轴各转20deg方便我们观察

    <div class="parbox">
            <div class="son before"></div>
            <div class="son after"></div>
            <div class="son left"></div>
            <div class="son right"></div>
            <div class="son top"></div>
            <div class="son bottom"></div>
      </div>
     <style>
            * {
                margin: 0;
                padding: 0;
            }
            .parbox {
                width: 300px;
                height: 300px;
                position: fixed;
                left: 0;right: 0;
                top: 0;bottom: 0;
                margin: auto;
                background-color: purple;
                transform-style: preserve-3d;
                transform: rotateX(20deg) rotateY(20deg);
            }
            .son {
                width: 300px;
                height: 300px;
                position: absolute;
                left: 0;top: 0;
                background-color:yellow;
            }
        </style>
  2. 利用transform实现立方体的六个面
    1. 正面

      .before {
                  transform:translateZ(150px);
              }
    2. 背面
       .after {
                  transform:translateZ(-150px) rotateY(180deg);
              }
    3. 上面
       .top{
                  transform: translateY(-150px) rotateX(90deg);
              }
    4. 下面
       .bottom {
                  transform: translateY(150px) rotateX(-90deg);
              }
    5. 左面
      .left {
                  transform: translateX(-150px) rotateY(-90deg);
              }
    6. 右面
      .right {
                  transform: translateX(150px) rotateY(90deg);
              }
  3. @keyframes指定关键帧
     @keyframes Rotate {
                0% {
                    transform:rotateY(0deg) rotateX(0deg);
                }
                25% {
                    transform:rotateY(90deg) rotateX(90deg);
                }
                50% {
                    transform: rotatey(180deg) rotateX(0deg);
                }
                75% {
                    transform:rotateY(270deg) rotateX(-90deg);
                }
                100% {
                    transform: rotateY(360deg) rotateX(0deg);
                }
            } 
  4. animation引用关键帧
     .parbox{
             animation: Rotate 10s infinite linear;
            }
  5. 往六个面添加图片
    <div class="parbox">
            <div class="son before"><img src="./images/x.jpg" alt=""></div>
            <div class="son after"><img src="./images/x.jpg" alt=""></div>
            <div class="son left"><img src="./images/x.jpg" alt=""></div>
            <div class="son right"><img src="./images/x.jpg" alt=""></div>
            <div class="son top"><img src="./images/x.jpg" alt=""></div>
            <div class="son bottom"><img src="./images/x.jpg" alt=""></div>
        </div>
     .son img {
    ?
         display: block;
    ?
         width: 100%;
    ?
         height: 100%;
    ?
       }

    这样一个带图片旋转的立方体盒子就实现了

  6. 我们还可以增加鼠标移入停止旋转

    .parbox:hover {
                animation-play-state: paused;
            }
  7. 鼠标移入图片放大效果

    .before img:hover {
                            transform: scale(1.5);
                       }

    效果图

  css样式

 <style>
        * {
            margin: 0;
            padding: 0;
        }
        .parbox {
            width: 300px;
            height: 300px;
            position: fixed;
            left: 0;right: 0;
            top: 0;bottom: 0;
            margin: auto;
            transform-style: preserve-3d;
            /* transform: rotateX(20deg) rotateY(20deg); */
            animation: Rotate 10s infinite linear;
        }
        .parbox:hover {
            animation-play-state: paused;
        }
        .son {
            width: 200px;
            height: 200px;
            position: absolute;
            left: 0;top: 0;
        }
        .son img {
            display: block;
            width: 100%;
            height: 100%;
            transition: 1s;
        }
        .before {
            transform:translateZ(150px);

        }
        .after {

            transform:translateZ(-150px) rotateY(180deg);
        }
        .top {

            transform: translateY(-150px) rotateX(90deg);
        }
        .bottom {

            transform: translateY(150px) rotateX(-90deg);
        }
        .left {

            transform: translateX(-150px) rotateY(-90deg);
        }
        .right {

            transform: translateX(150px) rotateY(90deg);
        }
        .after img:hover {
            transform: scale(1.5);
        }
        .before img:hover {
            transform: scale(1.5);
        }
        .left img:hover {
            transform: scale(1.5);
        }
        .right img:hover {
            transform: scale(1.5);
        }
        .top img:hover {
            transform: scale(1.5);
        }
        .bottom img:hover {
            transform: scale(1.5);
        }
        @keyframes Rotate {
            0% {
                transform:rotateY(0deg) rotateX(0deg);
            }
            25% {
                transform:rotateY(90deg) rotateX(90deg);
            }
            50% {
                transform: rotatey(180deg) rotateX(0deg);
            }
            75% {
                transform:rotateY(270deg) rotateX(-90deg);
            }
            100% {
                transform: rotateY(360deg) rotateX(0deg);
            }
        }
    </style>

原文地址:https://www.cnblogs.com/gbx98/p/12389495.html

时间: 2024-10-22 12:41:11

CSS3实现旋转立方体的相关文章

css3制作旋转立方体相册

css3制作旋转立方体相册 首先让我们来看一下最终效果图: 当鼠标放在图片上是介个样子滴: 是不是觉得很好看?那接下来就一起制作吧! 我个人觉得编程,首先是思路,然后是代码,一起分析一下这个效果的思路. 1.背景颜色,它属于一种渐变的背景色(当然这不是重点,可以根据自己的爱好进行设置): 2.我们可以观察一下他是有两个旋转的立方体,大立方体套小立方体: 3.点击图片的时候,外部大立方体向外延伸. 有了这个大体的思路我们就可以开始敲代码了. 1.新建文件夹 将各个不同类型的代码进行归类是很有必要的

纯CSS3超酷3D旋转立方体动画特效

这是一款效果非常炫酷的纯CSS3 3D旋转立方体动画特效.该3D立方体使用CSS3 perspective制作,可以在水平方向.垂直方向和平面视角方向旋转,效果相当震撼.使用CSS3来制作动画效果已经成为WEB前端开发的一种时尚,从简单的颜色和尺寸动画,到复杂的旋转.翻转动画, CSS3展现了它无穷的魅力.使用CSS来制作立方体动画,代码简洁易懂,效果更是令人惊叹! 在线演示:http://www.htmleaf.com/Demo/201501251274.html 下载地址:http://ww

基于css3的3D立方体旋转特效

今天给大家分享一款基于css3的3D立方体旋转特效.这款特效适用浏览器:360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗. 不支持IE8及以下浏览器.效果图如下 : 在线预览   源码下载 实现的代码. html代码: <div class="wrap"> <div class="box1 box"> 1</div> <div class="box2 box">

css3 3d旋转图片立方体特效代码

一.什么是css3 3d旋转 ? 形成一个3D空间: transform-style:preserve-3d    ( 让父元素形成3D,让其子元素在3D空间进行变化 ). 3d场景,在垂直于屏幕的方法,相对于3d多出个z轴,Z轴:靠近屏幕的方向是正向,远离屏幕的方向是反向,2d场景,在屏幕上水平和垂直的交叉线x轴和y轴. 二.关于css 3d旋转的相关属性及使用方法 变形属性:transform 3D功能函数 ----3D的位移:transform:translate3d(x,y,z);   

css3旋转立方体-_-

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <!--抱歉,时间紧暂时只写了谷歌的方法,ie等浏览器的兼容还没写0.0.--> <title>C3旋转立方体</title> <style> * { margin: 0; padding: 0; } body { background-color

css3立体旋转菜单

css3立体旋转菜单,css3,3D,立体旋转,立体菜单,菜单导航,css3立体旋转菜单是一款纯css3实现的三维立体旋转导航菜单. 源码下载页:http://www.huiyi8.com/sc/7127.html css3立体旋转菜单,布布扣,bubuko.com

HTML5旋转立方体

在工作中的经常使用repo命令,但是有时会忘记一些命令和遇到的一些问题,记录下来方便已经查询. 常见问题: 问题1:找不到命令:repo 方法: 在下载android源码的时候用repo时提示找不到命令,可以用如下方法解决,在命令行中输入如下两行: echo 'export PATH=$PATH:$Home/bin' >>~/.bashrc export PATH=$PATH:$HOME/bin 问题2: /home/xxxxxx/bin/repo: line 1: 在未预料的"ne

CSS3放大旋转

CSS3放大旋转实例: <!DOCTYPE html> <html > <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>CSS3放大旋转</title> <style> .a{ transition:All 0.4s ease-in-out; -webkit-tra

详解用CSS绘制3D旋转立方体

CSS3D旋转立方体绝对是能充分代表这些年CSS发展新高度的典型案例.从一种只是简单的颜色和尺寸渲染的标记符,CSS现在已经变成了一种能够创造出复杂的.具有艺术感染力的视觉效果的编程语言.动画效果的生成变得非常的简单易行. 遗憾的是,目前网上的关于CSS立方体的制作教程都有些复杂,在立方体的基础上混合了其它视觉效果,所以,我决定写这篇文章,只涉及如何创造出基本的CSS立方体的讲解.这篇文章中使用的例子来自于CodePen上Mircea Georgescu的漂亮杰作. 观看演示 HTML 这个立方