自学内容网 自学内容网

很有意思的css动态渐变

 

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8" />
    <title>很有意思的css动态渐变</title>
    <style>
        body {
            background-color: black;
        }

        .rotating-container,
        .static-container,
        .secondary-container {
            background-color: black;
            border-radius: 8px;
            width: 200px;
            height: 200px;
            position: absolute;
        }

        .rotating-container {
            /* background: repeating-conic-gradient(from var(--range), var(--color1), var(--color2), var(--color3), var(--color4), var(--color5), var(--color6), var(--color7), var(--color8), var(--color9), var(--color10), var(--color11), var(--color12)); */
            background: repeating-conic-gradient(from var(--range), var(--colors));
            animation: rotating 3s linear infinite;
            left: 30%;
            top: 25%;
        }

        .static-container {
            left: 50%;
            top: 25%;
        }

        .secondary-container {
            left: 70%;
            top: 25%;
        }

        @property --range {
            initial-value: 0deg;
            syntax: '<angle>';
            inherits: false;
        }

        @keyframes rotating {
            0% {
                --range: 0deg;
            }

            100% {
                --range: 360deg;
            }
        }

        .rotating-container::before,
        .static-container::before,
        .secondary-container::before {
            content: '';
            position: absolute;
            left: -10px;
            top: -10px;
            width: calc(100% + 20px);
            height: calc(100% + 20px);
            border-radius: 10px;
            z-index: -1;
            animation: rotating 4s linear infinite;
            /* background: repeating-conic-gradient(from var(--range), var(--color1), var(--color2), var(--color3), var(--color4), var(--color5), var(--color6), var(--color7), var(--color8), var(--color9), var(--color10), var(--color11), var(--color12)); */
            background: repeating-conic-gradient(from var(--range), var(--colors));
        }

        .secondary-container::before {
            animation: rotating2 4s linear infinite;
        }

        @keyframes rotating2 {
            from {
                transform: rotate(0deg);
            }

            to {
                transform: rotate(360deg);
            }
        }
    </style>
</head>

<body>
    <div>
        <div class="rotating-container"></div>
        <div class="static-container"></div>
        <div class="secondary-container"></div>
    </div>
</body>
<script>
    document.addEventListener("DOMContentLoaded", function () {
        const rotatingContainer = document.querySelector('.rotating-container');
        // 颜色数组
        const colors = [
            '#FF9933',
            '#3399FF',
            '#66c6ac',
            '#CC66FF',
            '#66CC66',
            '#99CCFF',
            '#FFCC33',
            '#67c23a',
            '#e6a23c',
            '#f56c6c',
            '#909399',
            '#0b1b2c'
        ];
        // 生成颜色字符串
        const colorsString = colors.join(', ');
        // 使用 JavaScript 设置 CSS 变量
        document.documentElement.style.setProperty('--colors', colorsString);
        // 使用 JavaScript 设置 CSS 变量
        colors.forEach((color, index) => {
            document.documentElement.style.setProperty(`--color${index + 1}`, color);
        });
        // 初始化状态
        let isAbsolute = false;
        // 每2秒循环添加和移除 position: absolute
        setInterval(() => {
            rotatingContainer.style.position = isAbsolute ? 'static' : 'absolute';
            // 切换状态
            isAbsolute = !isAbsolute;
        }, 2000);
    });
</script>

</html>


原文地址:https://blog.csdn.net/lulei5153/article/details/142447333

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!