CSS3动画(转自大神制作,很绚丽,纯CSS之作)

绚丽的3D动画(纯CSS实现,代码有点长啊,在这里不知道怎么折叠起来,讲究看看吧)

效果图:https://bupt-hjm.github.io/css3-3d/(转)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*容器*/
        .container{
            -webkit-perspective: 1000px;
            -moz-perspective: 1000px;
            -ms-perspective: 1000px;
            perspective: 1000px;
        }
        /*盒子*/
        .piece-box{
            position: relative;
            width: 200px;
            height: 200px;
            margin: 300px auto;
            perspective-origin: 50% 50%;
            -webkit-transform-style: preserve-3d;
            -moz-transform-style: preserve-3d;
            -ms-transform-style: preserve-3d;
            transform-style: preserve-3d;
            -moz-animation: pieceRotate 5s;
            -webkit-animation: pieceRotate 5s;
            -o-animation: pieceRotate 5s;
        }
        .piece-box2{
            -webkit-transform-style: preserve-3d;
            -moz-transform-style: preserve-3d;
            -ms-transform-style: preserve-3d;
            transform-style: preserve-3d;
            animation: boxRotate 5s 10s infinite;
            -moz-animation: boxRotate 5s 10s infinite;
            -webkit-animation: boxRotate 5s 10s infinite;
            -o-animation: boxRotate 5s 10s infinite;
        }
        .piece{
            position: absolute;
            width: 200px;
            height: 200px;
            background: red;
            opacity: 0.5;
        }
        .piece-1{
            background: #ff6666;
            -webkit-transform: rotateY(0deg) translateZ(173.2px);
            -ms-transform: rotateY(0deg) translateZ(173.2px);
            -o-transform: rotateY(0deg) translateZ(173.2px);
            transform: rotateY(0deg) translateZ(173.2px);
            animation: piece1Rotate 5s 5s;
            -webkit-animation: piece1Rotate 5s 5s;
            -moz-animation: piece1Rotate 5s 5s;
            -o-animation: piece1Rotate 5s 5s;
            -webkit-animation-fill-mode: forwards;
            animation-fill-mode: forwards;
        }
        .piece-2{
            background: #006699;
            -webkit-transform: rotateY(60deg) translateZ(173.2px);
            -ms-transform: rotateY(60deg) translateZ(173.2px);
            -o-transform: rotateY(60deg) translateZ(173.2px);
            transform: rotateY(60deg) translateZ(173.2px);
            animation: piece2Rotate 5s 5s;
            -webkit-animation: piece2Rotate 5s 5s;
            -moz-animation: piece2Rotate 5s 5s;
            -o-animation: piece2Rotate 5s 5s;
            -webkit-animation-fill-mode: forwards;
            animation-fill-mode: forwards;
        }
        .piece-3{
            background: #ffff00;
            -webkit-transform: rotateY(120deg) translateZ(173.2px);
            -ms-transform: rotateY(120deg) translateZ(173.2px);
            -o-transform: rotateY(120deg) translateZ(173.2px);
            transform: rotateY(120deg) translateZ(173.2px);
            animation: piece3Rotate 5s 5s;
            -webkit-animation: piece3Rotate 5s 5s;
            -moz-animation: piece3Rotate 5s 5s;
            -o-animation: piece3Rotate 5s 5s;
            -webkit-animation-fill-mode: forwards;
            animation-fill-mode: forwards;
        }
        .piece-4{
            background: #009999;
            -webkit-transform: rotateY(180deg) translateZ(173.2px);
            -ms-transform: rotateY(180deg) translateZ(173.2px);
            -o-transform: rotateY(180deg) translateZ(173.2px);
            transform: rotateY(180deg) translateZ(173.2px);
            animation: piece4Rotate 5s 5s;
            -webkit-animation: piece4Rotate 5s 5s;
            -moz-animation: piece4Rotate 5s 5s;
            -o-animation: piece4Rotate 5s 5s;
            -webkit-animation-fill-mode: forwards;
            animation-fill-mode: forwards;
        }
        .piece-5{
            background: #ff0033;
            -webkit-transform: rotateY(240deg) translateZ(173.2px);
            -ms-transform: rotateY(240deg) translateZ(173.2px);
            -o-transform: rotateY(240deg) translateZ(173.2px);
            transform: rotateY(240deg) translateZ(173.2px);
            animation: piece5Rotate 5s 5s;
            -webkit-animation: piece5Rotate 5s 5s;
            -moz-animation: piece5Rotate 5s 5s;
            -o-animation: piece5Rotate 5s 5s;
            -webkit-animation-fill-mode: forwards;
            animation-fill-mode: forwards;
        }
        .piece-6{
            background: #ff6600;
            -webkit-transform: rotateY(300deg) translateZ(173.2px);
            -ms-transform: rotateY(300deg) translateZ(173.2px);
            -o-transform: rotateY(300deg) translateZ(173.2px);
            transform: rotateY(300deg) translateZ(173.2px);
            animation: piece6Rotate 5s 5s;
            -webkit-animation: piece6Rotate 5s 5s;
            -moz-animation: piece6Rotate 5s 5s;
            -o-animation: piece6Rotate 5s 5s;
            -webkit-animation-fill-mode: forwards;
            animation-fill-mode: forwards;
        }
        @keyframes pieceRotate {
            0% {
                -webkit-transform: rotateY(0deg);
                -ms-transform: rotateY(0deg);
                -o-transform: rotateY(0deg);
                transform: rotateY(0deg);
            }
            100% {
                -webkit-transform: rotateY(360deg);
                -ms-transform: rotateY(360deg);
                -o-transform: rotateY(360deg);
                transform: rotateY(360deg);
            }
        }
        @-moz-keyframes pieceRotate {
            0% {
                -webkit-transform: rotateY(0deg);
                -ms-transform: rotateY(0deg);
                -o-transform: rotateY(0deg);
                transform: rotateY(0deg);
            }
            100% {
                -webkit-transform: rotateY(360deg);
                -ms-transform: rotateY(360deg);
                -o-transform: rotateY(360deg);
                transform: rotateY(360deg);
            }
        }
        @-webkit-keyframes pieceRotate {
            0% {
                -webkit-transform: rotateY(0deg);
                -ms-transform: rotateY(0deg);
                -o-transform: rotateY(0deg);
                transform: rotateY(0deg);
            }
            100% {
                -webkit-transform: rotateY(360deg);
                -ms-transform: rotateY(360deg);
                -o-transform: rotateY(360deg);
                transform: rotateY(360deg);
            }
        }
        @-o-keyframes pieceRotate {
            0% {
                -webkit-transform: rotateY(0deg);
                -ms-transform: rotateY(0deg);
                -o-transform: rotateY(0deg);
                transform: rotateY(0deg);
            }
            100% {
                -webkit-transform: rotateY(360deg);
                -ms-transform: rotateY(360deg);
                -o-transform: rotateY(360deg);
                transform: rotateY(360deg);
            }
        }
        @keyframes piece1Rotate {
            0% {
                -webkit-transform: rotateY(0deg)translateZ(173.2px);
                -ms-transform: rotateY(0deg)translateZ(173.2px);
                -o-transform: rotateY(0deg)translateZ(173.2px);
                transform: rotateY(0deg)translateZ(173.2px);
            }
            100% {
                -webkit-transform: rotateY(0deg)translateZ(100px);
                -ms-transform: rotateY(0deg)translateZ(100px);
                -o-transform: rotateY(0deg)translateZ(100px);
                transform: rotateY(0deg)translateZ(100px);
            }
        }
        @-moz-keyframes piece1Rotate {
            0% {
                -webkit-transform: rotateY(0deg)translateZ(173.2px);
                -ms-transform: rotateY(0deg)translateZ(173.2px);
                -o-transform: rotateY(0deg)translateZ(173.2px);
                transform: rotateY(0deg)translateZ(173.2px);
            }
            100% {
                -webkit-transform: rotateY(0deg)translateZ(100px);
                -ms-transform: rotateY(0deg)translateZ(100px);
                -o-transform: rotateY(0deg)translateZ(100px);
                transform: rotateY(0deg)translateZ(100px);
            }
        }
        @-webkit-keyframes piece1Rotate {
            0% {
                -webkit-transform: rotateY(0deg)translateZ(173.2px);
                -ms-transform: rotateY(0deg)translateZ(173.2px);
                -o-transform: rotateY(0deg)translateZ(173.2px);
                transform: rotateY(0deg)translateZ(173.2px);
            }
            100% {
                -webkit-transform: rotateY(0deg)translateZ(100px);
                -ms-transform: rotateY(0deg)translateZ(100px);
                -o-transform: rotateY(0deg)translateZ(100px);
                transform: rotateY(0deg)translateZ(100px);
            }
        }
        @-o-keyframes piece1Rotate {
            0% {
                -webkit-transform: rotateY(0deg)translateZ(173.2px);
                -ms-transform: rotateY(0deg)translateZ(173.2px);
                -o-transform: rotateY(0deg)translateZ(173.2px);
                transform: rotateY(0deg)translateZ(173.2px);
            }
            100% {
                -webkit-transform: rotateY(0deg)translateZ(100px);
                -ms-transform: rotateY(0deg)translateZ(100px);
                -o-transform: rotateY(0deg)translateZ(100px);
                transform: rotateY(0deg)translateZ(100px);
            }
        }

        @keyframes piece2Rotate {
            0% {
                -webkit-transform: translateX(173.2px)rotateY(0deg);
                -ms-transform: translateX(173.2px)rotateY(0deg);
                -o-transform: translateX(173.2px)rotateY(0deg);
                transform: translateX(173.2px)rotateY(0deg);
            }
            100% {
                -webkit-transform: translateY(100px)rotateX(90deg);
                -ms-transform: translateY(100px)rotateX(90deg);
                -o-transform: translateY(100px)rotateX(90deg);
                transform: translateY(100px)rotateX(90deg);
            }
        }
        @-moz-keyframes piece2Rotate {
            0% {
                -webkit-transform: translateX(173.2px)rotateY(0deg);
                -ms-transform: translateX(173.2px)rotateY(0deg);
                -o-transform: translateX(173.2px)rotateY(0deg);
                transform: translateX(173.2px)rotateY(0deg);
            }
            100% {
                -webkit-transform: translateY(100px)rotateX(90deg);
                -ms-transform: translateY(100px)rotateX(90deg);
                -o-transform: translateY(100px)rotateX(90deg);
                transform: translateY(100px)rotateX(90deg);
            }
        }
        @-webkit-keyframes piece2Rotate {
            0% {
                -webkit-transform: translateX(173.2px)rotateY(0deg);
                -ms-transform: translateX(173.2px)rotateY(0deg);
                -o-transform: translateX(173.2px)rotateY(0deg);
                transform: translateX(173.2px)rotateY(0deg);
            }
            100% {
                -webkit-transform: translateY(100px)rotateX(90deg);
                -ms-transform: translateY(100px)rotateX(90deg);
                -o-transform: translateY(100px)rotateX(90deg);
                transform: translateY(100px)rotateX(90deg);
            }
        }
        @-o-keyframes piece2Rotate {
            0% {
                -webkit-transform: translateX(173.2px)rotateY(0deg);
                -ms-transform: translateX(173.2px)rotateY(0deg);
                -o-transform: translateX(173.2px)rotateY(0deg);
                transform: translateX(173.2px)rotateY(0deg);
            }
            100% {
                -webkit-transform: translateY(100px)rotateX(90deg);
                -ms-transform: translateY(100px)rotateX(90deg);
                -o-transform: translateY(100px)rotateX(90deg);
                transform: translateY(100px)rotateX(90deg);
            }
        }

        @keyframes piece3Rotate {
            0% {
                -webkit-transform: translateX(173.2px)rotateY(0deg);
                -ms-transform: translateX(173.2px)rotateY(0deg);
                -o-transform: translateX(173.2px)rotateY(0deg);
                transform: translateX(173.2px)rotateY(0deg);
            }
            100% {
                -webkit-transform: translateX(100px)rotateY(90deg);
                -ms-transform: translateX(100px)rotateY(90deg);
                -o-transform: translateX(100px)rotateY(90deg);
                transform: translateX(100px)rotateY(90deg);
            }
        }
        @-moz-keyframes piece3Rotate {
            0% {
                -webkit-transform: translateX(173.2px)rotateY(0deg);
                -ms-transform: translateX(173.2px)rotateY(0deg);
                -o-transform: translateX(173.2px)rotateY(0deg);
                transform: translateX(173.2px)rotateY(0deg);
            }
            100% {
                -webkit-transform: translateX(100px)rotateY(90deg);
                -ms-transform: translateX(100px)rotateY(90deg);
                -o-transform: translateX(100px)rotateY(90deg);
                transform: translateX(100px)rotateY(90deg);
            }
        }
        @-webkit-keyframes piece3Rotate {
            0% {
                -webkit-transform: translateX(173.2px)rotateY(0deg);
                -ms-transform: translateX(173.2px)rotateY(0deg);
                -o-transform: translateX(173.2px)rotateY(0deg);
                transform: translateX(173.2px)rotateY(0deg);
            }
            100% {
                -webkit-transform: translateX(100px)rotateY(90deg);
                -ms-transform: translateX(100px)rotateY(90deg);
                -o-transform: translateX(100px)rotateY(90deg);
                transform: translateX(100px)rotateY(90deg);
            }
        }
        @-o-keyframes piece3Rotate {
            0% {
                -webkit-transform: translateX(173.2px)rotateY(0deg);
                -ms-transform: translateX(173.2px)rotateY(0deg);
                -o-transform: translateX(173.2px)rotateY(0deg);
                transform: translateX(173.2px)rotateY(0deg);
            }
            100% {
                -webkit-transform: translateX(100px)rotateY(90deg);
                -ms-transform: translateX(100px)rotateY(90deg);
                -o-transform: translateX(100px)rotateY(90deg);
                transform: translateX(100px)rotateY(90deg);
            }
        }

        @keyframes piece4Rotate {
            0% {
                -webkit-transform: rotateY(0deg)translateZ(173.2px);
                -ms-transform: rotateY(0deg)translateZ(173.2px);
                -o-transform: rotateY(0deg)translateZ(173.2px);
                transform: rotateY(0deg)translateZ(173.2px);
            }
            100% {
                -webkit-transform: rotateY(0deg)translateZ(-100px);
                -ms-transform: rotateY(0deg)translateZ(-100px);
                -o-transform: rotateY(0deg)translateZ(-100px);
                transform: rotateY(0deg)translateZ(-100px);
            }
        }
        @-moz-keyframes piece4Rotate {
            0% {
                -webkit-transform: rotateY(0deg)translateZ(173.2px);
                -ms-transform: rotateY(0deg)translateZ(173.2px);
                -o-transform: rotateY(0deg)translateZ(173.2px);
                transform: rotateY(0deg)translateZ(173.2px);
            }
            100% {
                -webkit-transform: rotateY(0deg)translateZ(-100px);
                -ms-transform: rotateY(0deg)translateZ(-100px);
                -o-transform: rotateY(0deg)translateZ(-100px);
                transform: rotateY(0deg)translateZ(-100px);
            }
        }
        @-webkit-keyframes piece4Rotate {
            0% {
                -webkit-transform: rotateY(0deg)translateZ(173.2px);
                -ms-transform: rotateY(0deg)translateZ(173.2px);
                -o-transform: rotateY(0deg)translateZ(173.2px);
                transform: rotateY(0deg)translateZ(173.2px);
            }
            100% {
                -webkit-transform: rotateY(0deg)translateZ(-100px);
                -ms-transform: rotateY(0deg)translateZ(-100px);
                -o-transform: rotateY(0deg)translateZ(-100px);
                transform: rotateY(0deg)translateZ(-100px);
            }
        }
        @-o-keyframes piece4Rotate {
            0% {
                -webkit-transform: rotateY(0deg)translateZ(173.2px);
                -ms-transform: rotateY(0deg)translateZ(173.2px);
                -o-transform: rotateY(0deg)translateZ(173.2px);
                transform: rotateY(0deg)translateZ(173.2px);
            }
            100% {
                -webkit-transform: rotateY(0deg)translateZ(-100px);
                -ms-transform: rotateY(0deg)translateZ(-100px);
                -o-transform: rotateY(0deg)translateZ(-100px);
                transform: rotateY(0deg)translateZ(-100px);
            }
        }

        @keyframes piece5Rotate {
            0% {
                -webkit-transform: translateX(173.2px)rotateY(0deg);
                -ms-transform: translateX(173.2px)rotateY(0deg);
                -o-transform: translateX(173.2px)rotateY(0deg);
                transform: translateX(173.2px)rotateY(0deg);
            }
            100% {
                -webkit-transform: translateX(-100px)rotateY(90deg);
                -ms-transform: translateX(-100px)rotateY(90deg);
                -o-transform: translateX(-100px)rotateY(90deg);
                transform: translateX(-100px)rotateY(90deg);
            }
        }
        @-moz-keyframes piece5Rotate {
            0% {
                -webkit-transform: translateX(173.2px)rotateY(0deg);
                -ms-transform: translateX(173.2px)rotateY(0deg);
                -o-transform: translateX(173.2px)rotateY(0deg);
                transform: translateX(173.2px)rotateY(0deg);
            }
            100% {
                -webkit-transform: translateX(-100px)rotateY(90deg);
                -ms-transform: translateX(-100px)rotateY(90deg);
                -o-transform: translateX(-100px)rotateY(90deg);
                transform: translateX(-100px)rotateY(90deg);
            }
        }
        @-webkit-keyframes piece5Rotate {
            0% {
                -webkit-transform: translateX(173.2px)rotateY(0deg);
                -ms-transform: translateX(173.2px)rotateY(0deg);
                -o-transform: translateX(173.2px)rotateY(0deg);
                transform: translateX(173.2px)rotateY(0deg);
            }
            100% {
                -webkit-transform: translateX(-100px)rotateY(90deg);
                -ms-transform: translateX(-100px)rotateY(90deg);
                -o-transform: translateX(-100px)rotateY(90deg);
                transform: translateX(-100px)rotateY(90deg);
            }
        }
        @-o-keyframes piece5Rotate {
            0% {
                -webkit-transform: translateX(173.2px)rotateY(0deg);
                -ms-transform: translateX(173.2px)rotateY(0deg);
                -o-transform: translateX(173.2px)rotateY(0deg);
                transform: translateX(173.2px)rotateY(0deg);
            }
            100% {
                -webkit-transform: translateX(-100px)rotateY(90deg);
                -ms-transform: translateX(-100px)rotateY(90deg);
                -o-transform: translateX(-100px)rotateY(90deg);
                transform: translateX(-100px)rotateY(90deg);
            }
        }

        @keyframes piece6Rotate {
            0% {
                -webkit-transform: translateX(173.2px)rotateY(0deg);
                -ms-transform: translateX(173.2px)rotateY(0deg);
                -o-transform: translateX(173.2px)rotateY(0deg);
                transform: translateX(173.2px)rotateY(0deg);
            }
            100% {
                -webkit-transform: translateY(-100px)rotateX(90deg);
                -ms-transform: translateY(-100px)rotateX(90deg);
                -o-transform: translateY(-100px)rotateX(90deg);
                transform: translateY(-100px)rotateX(90deg);
            }
        }
        @-moz-keyframes piece6Rotate {
            0% {
                -webkit-transform: translateX(173.2px)rotateY(0deg);
                -ms-transform: translateX(173.2px)rotateY(0deg);
                -o-transform: translateX(173.2px)rotateY(0deg);
                transform: translateX(173.2px)rotateY(0deg);
            }
            100% {
                -webkit-transform: translateY(-100px)rotateX(90deg);
                -ms-transform: translateY(-100px)rotateX(90deg);
                -o-transform: translateY(-100px)rotateX(90deg);
                transform: translateY(-100px)rotateX(90deg);
            }
        }
        @-webkit-keyframes piece6Rotate {
            0% {
                -webkit-transform: translateX(173.2px)rotateY(0deg);
                -ms-transform: translateX(173.2px)rotateY(0deg);
                -o-transform: translateX(173.2px)rotateY(0deg);
                transform: translateX(173.2px)rotateY(0deg);
            }
            100% {
                -webkit-transform: translateY(-100px)rotateX(90deg);
                -ms-transform: translateY(-100px)rotateX(90deg);
                -o-transform: translateY(-100px)rotateX(90deg);
                transform: translateY(-100px)rotateX(90deg);
            }
        }
        @-o-keyframes piece6Rotate {
            0% {
                -webkit-transform: translateX(173.2px)rotateY(0deg);
                -ms-transform: translateX(173.2px)rotateY(0deg);
                -o-transform: translateX(173.2px)rotateY(0deg);
                transform: translateX(173.2px)rotateY(0deg);
            }
            100% {
                -webkit-transform: translateY(-100px)rotateX(90deg);
                -ms-transform: translateY(-100px)rotateX(90deg);
                -o-transform: translateY(-100px)rotateX(90deg);
                transform: translateY(-100px)rotateX(90deg);
            }
        }

        @keyframes boxRotate {
            0% {
                -webkit-transform: rotateX(0deg)rotateY(0deg);
                -ms-transform: rotateX(0deg)rotateY(0deg);
                -o-transform: rotateX(0deg)rotateY(0deg);
                transform: rotateX(0deg)rotateY(0deg);
            }
            100% {
                -webkit-transform: rotateX(360deg)rotateY(360deg);
                -ms-transform: rotateX(360deg)rotateY(360deg);
                -o-transform: rotateX(360deg)rotateY(360deg);
                transform: rotateX(360deg)rotateY(360deg);
            }
        }
        @-moz-keyframes boxRotate {
            0% {
                -webkit-transform: rotateX(0deg)rotateY(0deg);
                -ms-transform: rotateX(0deg)rotateY(0deg);
                -o-transform: rotateX(0deg)rotateY(0deg);
                transform: rotateX(0deg)rotateY(0deg);
            }
            100% {
                -webkit-transform: rotateX(360deg)rotateY(360deg);
                -ms-transform: rotateX(360deg)rotateY(360deg);
                -o-transform: rotateX(360deg)rotateY(360deg);
                transform: rotateX(360deg)rotateY(360deg);
            }
        }
        @-webkit-keyframes boxRotate {
            0% {
                -webkit-transform: rotateX(0deg)rotateY(0deg);
                -ms-transform: rotateX(0deg)rotateY(0deg);
                -o-transform: rotateX(0deg)rotateY(0deg);
                transform: rotateX(0deg)rotateY(0deg);
            }
            100% {
                -webkit-transform: rotateX(360deg)rotateY(360deg);
                -ms-transform: rotateX(360deg)rotateY(360deg);
                -o-transform: rotateX(360deg)rotateY(360deg);
                transform: rotateX(360deg)rotateY(360deg);
            }
        }
        @-o-keyframes boxRotate {
            0% {
                -webkit-transform: rotateX(0deg)rotateY(0deg);
                -ms-transform: rotateX(0deg)rotateY(0deg);
                -o-transform: rotateX(0deg)rotateY(0deg);
                transform: rotateX(0deg)rotateY(0deg);
            }
            100% {
                -webkit-transform: rotateX(360deg)rotateY(360deg);
                -ms-transform: rotateX(360deg)rotateY(360deg);
                -o-transform: rotateX(360deg)rotateY(360deg);
                transform: rotateX(360deg)rotateY(360deg);
            }
        }

    </style>
</head>
<body>
<div class="container">
    <div class="piece-box">
        <div class="piece-box2">
            <div class="piece piece-1"></div>
            <div class="piece piece-2"></div>
            <div class="piece piece-3"></div>
            <div class="piece piece-4"></div>
            <div class="piece piece-5"></div>
            <div class="piece piece-6"></div>
        </div>
    </div>
</div>
</body>
</html>

转载于:https://my.oschina.net/strip/blog/738576

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值