• CSS3实现3D球体旋转动画


    html

    <div class="ball-box">
        <div class="ball">
            <div class="line1"></div>
            <div class="line2"></div>
            <div class="line3"></div>
            <div class="line4"></div>
            <div class="line5"></div>
        </div>
    </div>
    

     css

    <style type="text/css">
        body{
            background-color: #000000;
        }
        .ball-box{
             300px;
            height: 300px;
            position: absolute;
            left: 50%;
            top: 50%;
            margin: -150px 0 0 -150px;
            -webkit-perspective-origin: 50% 50%;
            -moz-perspective-origin: 50% 50%;
            -ms-perspective-origin: 50% 50%;
            -o-perspective-origin: 50% 50%;
            perspective-origin: 50% 50%;
            -webkit-perspective: 3000px;
            -moz-perspective: 3000px;
            -ms-perspective: 3000px;
            -o-perspective: 3000px;
            perspective: 3000px;
        }
        @-webkit-keyframes rotate3d {
            0%{
                -webkit-transform: rotateZ(-30deg) rotateY(0deg);
                -moz-transform: rotateZ(-30deg) rotateY(0deg);
                -ms-transform: rotateZ(-30deg) rotateY(0deg);
                -o-transform: rotateZ(-30deg) rotateY(0deg);
                transform: rotateZ(-30deg) rotateY(0deg);
            }
            100%{
                -webkit-transform: rotateZ(-30deg) rotateY(360deg);
                -moz-transform: rotateZ(-30deg) rotateY(360deg);
                -ms-transform: rotateZ(-30deg) rotateY(360deg);
                -o-transform: rotateZ(-30deg) rotateY(360deg);
                transform: rotateZ(-30deg) rotateY(360deg);
            }
        }
        @-moz-keyframes rotate3d {
            0%{
                -webkit-transform: rotateZ(-30deg) rotateY(0deg);
                -moz-transform: rotateZ(-30deg) rotateY(0deg);
                -ms-transform: rotateZ(-30deg) rotateY(0deg);
                -o-transform: rotateZ(-30deg) rotateY(0deg);
                transform: rotateZ(-30deg) rotateY(0deg);
            }
            100%{
                -webkit-transform: rotateZ(-30deg) rotateY(360deg);
                -moz-transform: rotateZ(-30deg) rotateY(360deg);
                -ms-transform: rotateZ(-30deg) rotateY(360deg);
                -o-transform: rotateZ(-30deg) rotateY(360deg);
                transform: rotateZ(-30deg) rotateY(360deg);
            }
        }
        @-ms-keyframes rotate3d {
            0%{
                -webkit-transform: rotateZ(-30deg) rotateY(0deg);
                -moz-transform: rotateZ(-30deg) rotateY(0deg);
                -ms-transform: rotateZ(-30deg) rotateY(0deg);
                -o-transform: rotateZ(-30deg) rotateY(0deg);
                transform: rotateZ(-30deg) rotateY(0deg);
            }
            100%{
                -webkit-transform: rotateZ(-30deg) rotateY(360deg);
                -moz-transform: rotateZ(-30deg) rotateY(360deg);
                -ms-transform: rotateZ(-30deg) rotateY(360deg);
                -o-transform: rotateZ(-30deg) rotateY(360deg);
                transform: rotateZ(-30deg) rotateY(360deg);
            }
        }
        @-o-keyframes rotate3d {
            0%{
                -webkit-transform: rotateZ(-30deg) rotateY(0deg);
                -moz-transform: rotateZ(-30deg) rotateY(0deg);
                -ms-transform: rotateZ(-30deg) rotateY(0deg);
                -o-transform: rotateZ(-30deg) rotateY(0deg);
                transform: rotateZ(-30deg) rotateY(0deg);
            }
            100%{
                -webkit-transform: rotateZ(-30deg) rotateY(360deg);
                -moz-transform: rotateZ(-30deg) rotateY(360deg);
                -ms-transform: rotateZ(-30deg) rotateY(360deg);
                -o-transform: rotateZ(-30deg) rotateY(360deg);
                transform: rotateZ(-30deg) rotateY(360deg);
            }
        }
        @keyframes rotate3d {
            0%{
                -webkit-transform: rotateZ(-30deg) rotateY(0deg);
                -moz-transform: rotateZ(-30deg) rotateY(0deg);
                -ms-transform: rotateZ(-30deg) rotateY(0deg);
                -o-transform: rotateZ(-30deg) rotateY(0deg);
                transform: rotateZ(-30deg) rotateY(0deg);
            }
            100%{
                -webkit-transform: rotateZ(-30deg) rotateY(360deg);
                -moz-transform: rotateZ(-30deg) rotateY(360deg);
                -ms-transform: rotateZ(-30deg) rotateY(360deg);
                -o-transform: rotateZ(-30deg) rotateY(360deg);
                transform: rotateZ(-30deg) rotateY(360deg);
            }
        }
        .ball{
            height: 100%;
            -webkit-transform-style: preserve-3d;
            -moz-transform-style: preserve-3d;
            -ms-transform-style: preserve-3d;
            transform-style: preserve-3d;
            -webkit-animation: rotate3d 30s linear infinite;
            -moz-animation: rotate3d 30s linear infinite;
            -ms-animation: rotate3d 30s linear infinite;
            -o-animation: rotate3d 30s linear infinite;
            animation: rotate3d 30s linear infinite;
        }
        .ball:after{
            display: block;
            content: '';
             1px;
            height: 500px;
            background-color: #ff0;
            position: absolute;
            top: -100px;
            left: 150px;
        }
        .ball > div{
            border: 1px #ffffff solid;
            position: absolute;
             100%;
            height: 100%;
            -webkit-border-radius: 50%;
            -moz-border-radius: 50%;
            border-radius: 50%;
        }
        .ball .line1{
            -webkit-transform: rotateY(0deg);
            -moz-transform: rotateY(0deg);
            -ms-transform: rotateY(0deg);
            -o-transform: rotateY(0deg);
            transform: rotateY(0deg);
        }
        .ball .line2{
            -webkit-transform: rotateY(36deg);
            -moz-transform: rotateY(36deg);
            -ms-transform: rotateY(36deg);
            -o-transform: rotateY(36deg);
            transform: rotateY(36deg);
        }
        .ball .line3{
            -webkit-transform: rotateY(72deg);
            -moz-transform: rotateY(72deg);
            -ms-transform: rotateY(72deg);
            -o-transform: rotateY(72deg);
            transform: rotateY(72deg);
        }
        .ball .line4{
            -webkit-transform: rotateY(108deg);
            -moz-transform: rotateY(108deg);
            -ms-transform: rotateY(108deg);
            -o-transform: rotateY(108deg);
            transform: rotateY(108deg);
        }
        .ball .line1{
            -webkit-transform: rotateY(144deg);
            -moz-transform: rotateY(144deg);
            -ms-transform: rotateY(144deg);
            -o-transform: rotateY(144deg);
            transform: rotateY(144deg);
        }
    </style>
    
  • 相关阅读:
    微信公众账号报错 返回码说明
    2013与2014之流水
    【Leetcode刷题】字符串模式匹配算法知多少
    【数据库测试工具】认识Sysbench
    【论文笔记】《基于深度学习的中文命名实体识别研究》阅读笔记
    分享一份关于Hadoop2.2.0集群环境搭建文档
    【Java实践】Kettle从一次实验说起
    【资源共享】eBook分享大集合
    java入门知识
    python编程规范系列--建议08~18
  • 原文地址:https://www.cnblogs.com/xiaobaizhiqian/p/8410338.html
Copyright © 2020-2023  润新知