css3D实现旋转木马和立方体切换

 css3D实现旋转木马和立方体切换

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        @keyframes run {
            0% {
                transform: rotateY(0deg);
            }
            100% {
                transform: rotateY(360deg);
            }
        }
        
        body {
            perspective: 1000px;
        }
        
        .wrap {
            animation: run 4s linear infinite;
            transform-style: preserve-3d;
            position: relative;
            width: 200px;
            height: 200px;
            /* border: 1px solid red; */
            margin: 100px auto;
        }
        
        .box {
            position: absolute;
            top: 0;
            width: 200px;
            height: 200px;
            border: 1px solid #000;
            transition: all 1s linear;
        }
        
        .box img {
            width: 100%;
            height: 100%;
            opacity: .5;
        }
        
        .front {
            transform: translateZ(100px);
        }
        
        .back {
            transform: rotateY(180deg) translateZ(100px);
        }
        
        .top {
            transform: rotateX(90deg) translateZ(100px);
        }
        
        .bottom {
            transform: rotateX(-90deg) translateZ(100px);
        }
        
        .left {
            transform: rotateY(-90deg) translateZ(100px);
        }
        
        .right {
            transform: rotateY(90deg) translateZ(100px);
        }
    </style>
</head>

<body>
    <div class="wrap" id="wrap">
        <div class="box top" id="top"><img src="./images1/001.jpg" alt=""></div>
        <div class="box bottom" id="bottom"><img src="./images1/002.jpg" alt=""></div>
        <div class="box left" id="left"><img src="./images1/003.jpg" alt=""></div>
        <div class="box right" id="right"><img src="./images1/004.jpg" alt=""></div>
        <div class="box front" id="front"><img src="./images1/005.jpg" alt=""></div>
        <div class="box back" id="back"><img src="./images1/006.jpg" alt=""></div>
    </div>
    <button id="btn">点击变换旋转木马</button>
    <script>
        var box_top = document.getElementById('top');
        var box_bottom = document.getElementById('bottom');
        var box_left = document.getElementById('left');
        var box_right = document.getElementById('right');
        var box_front = document.getElementById('front');
        var box_back = document.getElementById('back');

        // console.log(top);
        // var box_top = document.querySelector('.wrap>div:nth-child(1)')
        // var box_bottom = document.querySelector('.wrap>div:nth-child(2)')
        // var box_left = document.querySelector('.wrap>div:nth-child(3)')
        // var box_right = document.querySelector('.wrap>div:nth-child(4)')
        // var box_front = document.querySelector('.wrap>div:nth-child(5)')
        // var box_back = document.querySelector('.wrap>div:nth-child(6)')
        var btn = document.getElementById('btn');
        btn.onclick = function() {
            if (btn.innerHTML.trim() == '点击变换旋转木马') {
                box_front.style.transform = 'translateZ(200px)';
                box_back.style.transform = 'rotateY(60deg) translateZ(200px)';
                box_left.style.transform = 'rotateY(120deg) translateZ(200px)';
                box_right.style.transform = 'rotateY(180deg) translateZ(200px)';
                box_top.style.transform = 'rotateY(240deg) translateZ(200px)';
                box_bottom.style.transform = 'rotateY(300deg) translateZ(200px)';
                btn.innerHTML = '点击变换为立方体'
            } else {

                box_front.style.transform = 'translateZ(100px)';
                box_back.style.transform = 'rotateY(180deg) translateZ(100px)';
                box_left.style.transform = 'rotateY(-90deg) translateZ(100px)';
                box_right.style.transform = 'rotateY(90deg) translateZ(100px)';
                box_top.style.transform = 'rotateX(90deg) translateZ(100px)';
                box_bottom.style.transform = 'rotateY(-90deg) translateZ(100px)';
                btn.innerHTML = '点击变换旋转木马'
            }
        }
    </script>
</body>

</html>

猜你喜欢

转载自blog.csdn.net/are_gh/article/details/112004521