美文网首页WEB前端程序开发程序员
长方体3D轮播图(CSS3实现)

长方体3D轮播图(CSS3实现)

作者: ForeverYoung20 | 来源:发表于2017-03-02 18:36 被阅读886次

    效果图:

    1.png 2.png

    注意点:

    • 为了保证各个界面的字都是正立的,应先旋转再平移。
    • 如果不使用背景色,使用图片时一定要设置图片的宽高,否则图片间有间隙。
    • 近大远小的效果是在旋转的元素的父元素加 perspective: 500px;
    • 展示3D效果是在旋转元素的css中加transform-style: preserve-3d;
    • 可以如该种方法先画出正方体,再拉伸为长方体;也可以设置宽高时直接设为长方形。

    代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    
        <style>
            *{
                margin: 0;
                padding: 0;
            }
            div{
                width: 200px;
                height: 200px;
                margin: 150px auto;
                perspective: 500px;
            }
            ul{
                width: 200px;
                height: 200px;
                box-sizing: border-box;
                position: relative;
                transform-style: preserve-3d;
                animation:move 4s linear 0s infinite normal;
            }
            @keyframes move {
                from{
                    transform: rotateX(0deg);
                }
                to{
                    transform: rotateX(360deg);
                }
            }
            ul li{
                width: 200px;
                height: 200px;
                line-height: 200px;
                text-align: center;
                font-size: 28px;
                list-style: none;
                position: absolute;
                top: 0;
                left: 0;
            }
            ul li:nth-child(1){
                background: red;
                transform:rotateX(90deg) translateZ(100px) scale(2,1);
            }
            ul li:nth-child(2){
                background: green;
                transform: rotateX(180deg) translateZ(100px) scale(2,1);
            }
            ul li:nth-child(3){
                background: blue;
                transform: rotateX(270deg) translateZ(100px) scale(2,1);
            }
            ul li:nth-child(4){
                background: yellow;
                transform:  rotateX(360deg) translateZ(100px) scale(2,1);
            }
        </style>
    </head>
    <body>
    <div>
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
        </ul>
    </div>
    </body>
    </html>
    

    相关文章

      网友评论

        本文标题:长方体3D轮播图(CSS3实现)

        本文链接:https://www.haomeiwen.com/subject/kuekgttx.html