超级无敌海景拽掉咋天的魔方

好吧,请无视标题。

这是一个CSS3的魔方

1.HTML

    <div class="box">
        <div class="before face">
            <div>1</div>
            <div>2</div>
            <div>3</div>
            <div>4</div>
            <div>5</div>
            <div>6</div>
            <div>7</div>
            <div>8</div>
            <div>9</div>
        </div>
        <div class="back face">
            <div>1</div>
            <div>2</div>
            <div>3</div>
            <div>4</div>
            <div>5</div>
            <div>6</div>
            <div>7</div>
            <div>8</div>
            <div>9</div>
        </div>
        <div class="top face">
            <div>1</div>
            <div>2</div>
            <div>3</div>
            <div>4</div>
            <div>5</div>
            <div>6</div>
            <div>7</div>
            <div>8</div>
            <div>9</div>
        </div>
        <div class="bottom face">
            <div>1</div>
            <div>2</div>
            <div>3</div>
            <div>4</div>
            <div>5</div>
            <div>6</div>
            <div>7</div>
            <div>8</div>
            <div>9</div>
        </div>
        <div class="left face">
            <div>1</div>
            <div>2</div>
            <div>3</div>
            <div>4</div>
            <div>5</div>
            <div>6</div>
            <div>7</div>
            <div>8</div>
            <div>9</div>
        </div>
        <div class="right face">
            <div>1</div>
            <div>2</div>
            <div>3</div>
            <div>4</div>
            <div>5</div>
            <div>6</div>
            <div>7</div>
            <div>8</div>
            <div>9</div>
        </div>
    </div>

2.CSS

     body {
            /*background-color: azure;*/
            background-image: linear-gradient(180deg, blue, azure );
            background-repeat: no-repeat;
        }

        .box {
            width: 300px;
            height: 300px;
            margin: 150px auto;
            position: relative;
            font-size: 50px;
            transform-style: preserve-3d;
            animation: rotate 10s linear infinite alternate;
        }

        .face {
            display: flex;
            flex-wrap: wrap;
            width: 300px;
            height: 300px;
            position: absolute;
        }

            .face div {
                width: 90px;
                height: 90px;
                border-radius: 20px;
                margin: 5px;
                text-align: center;
                line-height: 90px;
            }

        .right {
            background-color: transparent;
            transform: rotateY(90deg) translateZ(150px);
        }

        .left {
            background-color: transparent;
            transform: rotateY(-90deg) translateZ(150px);
        }

        .top {
            background-color: transparent;
            transform: rotateX(90deg) translateZ(150px);
        }

        .bottom {
            background-color: transparent;
            transform: rotateX(-90deg) translateZ(150px);
        }

        .before {
            background-color: transparent;
            transform: translateZ(150px);
        }

        .back {
            background-color: transparent;
            transform: translateZ(-150px);
        }

        .before div {
            background-color: green;
        }

        .back div {
            background-color: chartreuse;
        }

        .top div {
            background-color: purple;
        }

        .bottom div {
            background-color: cornflowerblue;
        }

        .left div {
            background-color: darkorange;
        }

        .right div {
            background-color: #37ffc7;
        }

        .box:hover {
            animation-play-state: paused;
        }

        @keyframes rotate {
            0% {
                transform: rotateY(0deg) rotateX(0deg) rotateZ(0deg);
            }

            20% {
                transform: rotateY(30deg) rotateX(40deg) rotateZ(20deg);
            }

            40% {
                transform: rotateY(-60deg) rotateX(-40deg) rotateZ(-20deg);
            }

            60% {
                transform: rotateY(145deg) rotateX(80deg) rotateZ(10deg);
            }

            80% {
                transform: rotateY(90deg) rotateX(60deg) rotateZ(-20deg);
            }

            100% {
                transform: rotateY(135deg) rotateX(-45deg) rotateZ(30deg);
            }
        }

.box, .face组织了魔方。

.right, .left, .top, .bottom, .before, .back 定义了了6个面,分别放到3D座标上。

        .right {
            background-color: transparent;
            transform: rotateY(90deg) translateZ(150px);。
        }

        .left {
            background-color: transparent;
            transform: rotateY(-90deg) translateZ(150px);
        }

        .top {
            background-color: transparent;
            transform: rotateX(90deg) translateZ(150px);
        }

        .bottom {
            background-color: transparent;
            transform: rotateX(-90deg) translateZ(150px);
        }

        .before {
            background-color: transparent;
            transform: translateZ(150px);
        }

        .back {
            background-color: transparent;
            transform: translateZ(-150px);
        }

动画部分,定义了0%,20%,40%,60%,80%,100%的动画。

        @keyframes rotate {
            0% {
                transform: rotateY(0deg) rotateX(0deg) rotateZ(0deg);
            }

            20% {
                transform: rotateY(30deg) rotateX(40deg) rotateZ(20deg);
            }

            40% {
                transform: rotateY(-60deg) rotateX(-40deg) rotateZ(-20deg);
            }

            60% {
                transform: rotateY(145deg) rotateX(80deg) rotateZ(10deg);
            }

            80% {
                transform: rotateY(90deg) rotateX(60deg) rotateZ(-20deg);
            }

            100% {
                transform: rotateY(135deg) rotateX(-45deg) rotateZ(30deg);
            }
        }

原文地址:https://www.cnblogs.com/Ivan83/p/9080472.html

时间: 2024-10-24 20:27:45

超级无敌海景拽掉咋天的魔方的相关文章

超级无敌自己想出来的动态规划

题目大意:有一组纸币能构成哪几种面值. #include<bits/stdc++.h> using namespace std; #define ll long long int main() { int T; cin >> T; int m; cin >> m; int b[m+1]; for(int i=1;i <= m;i++) //输入现在能够加的值 cin >> b[i]; sort(b+1,b+m); //必须要从小到大的顺序取 while

超级无敌小学四则运算题目程序

尝试自己写一个能自动生成小学四则运算题目的命令行“软件”,分别满足下面的各种需求: a)自动生成小学四则运算题目,除整数以外,还要支持真分数的四则运算:运用计算机C语言中的rand函数,rand是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子. b)能接受用户输入答案,运用if语句来判断对错.最后给出总共对错的数量: c)运用for循环来实现一次批量给出100道的题目,并且运用计算机C语言中的rand函数,rand是真正的随机数生成器,而srand()会设置供rand(

史上超级无敌多线程死锁

*  synchronized:并不是往对象里面枷锁,锁是每个对象都有的属性,synchronized只是锁上了这把锁,是个持续的动作而已 *  死锁就是大家都访问不了的状态 * *  两个线程, *  两个线程先后访问两个互斥的对象 * *  原理: *      1某个线程执行完成,需要 先后 嵌套 锁定 执行两个对象,但是,过程当中,肯定就锁定了第一个对象 *      2 另外一个线程执行完成,也需要先后嵌套锁定执行两个对象,先执行锁定第二个对像 *      3 在第一个执行过程中,执

JS超级无敌大串讲!!!!!

今天来回顾一下JS的基础和使用方法!没有提纲全靠写了= = 首先来讲下运算符好了,和C#的运算符是基本相同的 数学运算符:+    -    *    /    %    ++    -- 关系运算符:==    !=    >=    <=    >    < 逻辑运算符:&&    ||    ! 其他运算符:+=    -=    *=    /=    %=    ? 整理一下发现不是基本相同.就他妈一个样! 再来说下数组好了 数组其实也没什么不同,只是JS

超级无敌简单题

Problem Description 通常来说,题面短的题目一般都比较难,所以我要把题面写得很长很长.通常来说,题面短的题目一般都比较难,所以我要把题面写得很长很长.通常来说,题面短的题目一般都比较难,所以我要把题面写得很长很长.鸽子数字由以下过程定义:从任何正整数开始,将数字替换为其各个数位的平方和,并重复该过程,直到该数字等于1.如果不能,则这个数字不是鸽子数.例如7是鸽子数,因为7->49->97->130->10->1.(7*7=49,4*4+9*9=97,9*9+

基于JavaScript并毫无技术含量的超级无敌说书人 悬浮窗版 斗鱼自动挡弹幕发射器

let div1 = document.createElement('div');//默认悬浮窗 let div2 = document.createElement('div');//控制台 let css1 = 'background: #1A59B7;color:#ffffff;overflow: hidden;z-index: 998;position: fixed;padding:5px;text-align:center;width: 75px;height: 22px;border-

Blend4精选案例图解教程(五):可视数据管理

原文:Blend4精选案例图解教程(五):可视数据管理 应用程序中我们会经常需要操作数据,在程序设计之初示例数据一般都是手工添加,Blend4提供了非常方便的数据管理能力,包括丰富的数据类型和内置示例数据,这样我们在程序设计时可以可视化进行绑定示例数据和管理静态数据.本次教程将演示Blend4中的这一优秀特性. 1.新建Silverlight项目 2.在项目默认视图中,打开数据面板,创建示例数据 3.新建示例数据,输入名称   4.生成的SampleDataSource 5.可以在Collect

JQuery拖拽改变元素的尺寸

"元素拖拽改变大小"其实和"元素拖拽"一个原理,只是所动态改变的对象不同而已,主要在于 top.left.width.height 的运用,相对实现起来也非常容易.以下附出源码原型,弄明白了原理再扩展其他实际应用,思路就变得简单.清晰得多了.先来看看效果:塔河县臧清机械 下面是 JavaScript Code view source print? 01 <script type="text/javascript"> 02     /*

Broken Necklace 坏掉的项链 USACO 模拟(易错)

1004: 1.1.4Broken Necklace 坏掉的项链 时间限制: 1 Sec  内存限制: 128 MB提交: 11  解决: 9[提交] [状态] [讨论版] [命题人:外部导入] 题目描述 1.1.4Broken Necklace 坏掉的项链 (beads.pas/c/cpp) 题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 1 2 1 2 r b b r b r r b r b b b