美文网首页
css动画综合篇

css动画综合篇

作者: xueyueshuai | 来源:发表于2024-06-25 11:43 被阅读0次
    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            @property --l {
                syntax: '<length>';
                initial-value: 0px;
                inherits: true;
            }
    
            .cube {
                margin-top: 100px;
                margin-left: 100px;
                position: relative;
                width: 200px;
                height: 200px;
                transform-style: preserve-3d;
                animation: spin 10s infinite linear paused;
                animation-delay: -0s;
                --l: 100px;
            }
    
            .face {
                position: absolute;
                width: 200px;
                height: 200px;
                border-radius: 30px;
    
                text-align: center;
                line-height: 200px;
            }
    
            .front {
                background-color: rgba(255, 0, 0, 0.71);
                transform: translateZ(var(--l));
            }
    
            .back {
                background-color: rgba(0, 0, 255, 0.81);
                transform: translateZ(calc(var(--l) * -1)) rotateY(180deg);
            }
    
            .right {
                background-color: rgba(0, 128, 0, 0.71);
                transform: rotateY(90deg) translateZ(calc(var(--l) * 1));
            }
    
            .left {
                background-color: rgba(255, 255, 0, 0.78);
                transform: rotateY(-90deg) translateZ(calc(var(--l) * 1));
            }
    
            .top {
                background-color: rgba(255, 165, 0, 0.76);
                transform: rotateX(90deg) translateZ(calc(var(--l) * 1));
            }
    
            .bottom {
                background-color: rgba(128, 0, 128, 0.7);
                transform: rotateX(-90deg) translateZ(calc(var(--l) * 1));
            }
    
            @keyframes spin {
                50% {
                    --l: 150px;
                    transform: rotate3d(1, 1, 1, 180deg);
                }
                to {
                    --l: 100px;
                    transform: rotate3d(1, 1, 1, 360deg);
                }
            }
    
        </style>
    </head>
    <body>
    <div class="cube">
        <div class="face front">前</div>
        <div class="face back">后</div>
        <div class="face right">右</div>
        <div class="face left">左</div>
        <div class="face top">上</div>
        <div class="face bottom">下</div>
    </div>
    
    <script>
      function onRangeChange(value) {
        let val = `-${value}s`
        console.log(val)
        document.querySelector('.cube').style.setProperty('animation-delay', val)
      }
    
      onRangeChange(5)
    </script>
    <div style="height: 100px"></div>
    <input type="range" oninput="onRangeChange(this.value)" min="0" max="10" step="0.1">
    
    </body>
    </html>
    
    

    相关文章

      网友评论

          本文标题:css动画综合篇

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