插件窝 干货文章 如何用CSS创建渐变透明且旋转的齿状圆环?

如何用CSS创建渐变透明且旋转的齿状圆环?

圆环 渐变 旋转 255 377    来源:    2025-03-23

要创建一个渐变透明且旋转的齿状圆环,你可以使用CSS的conic-gradientmasktransform等属性。以下是一个示例代码,展示了如何实现这个效果:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>渐变透明旋转齿状圆环</title>
    <style>
        body {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            background-color: #000;
            margin: 0;
        }

        .gear {
            width: 200px;
            height: 200px;
            position: relative;
            border-radius: 50%;
            background: conic-gradient(
                from 0deg,
                transparent 0deg 45deg,
                rgba(255, 255, 255, 0.8) 45deg 90deg,
                transparent 90deg 135deg,
                rgba(255, 255, 255, 0.8) 135deg 180deg,
                transparent 180deg 225deg,
                rgba(255, 255, 255, 0.8) 225deg 270deg,
                transparent 270deg 315deg,
                rgba(255, 255, 255, 0.8) 315deg 360deg
            );
            mask: radial-gradient(circle, transparent 50%, black 50%);
            animation: rotate 4s linear infinite;
        }

        @keyframes rotate {
            from {
                transform: rotate(0deg);
            }
            to {
                transform: rotate(360deg);
            }
        }
    </style>
</head>
<body>
    <div class="gear"></div>
</body>
</html>

代码解释:

  1. conic-gradient:

    • 使用conic-gradient创建一个锥形渐变背景,交替使用透明和不透明的颜色来形成齿状效果。
    • from 0deg表示从0度开始渐变。
    • transparent 0deg 45deg表示从0度到45度是透明的。
    • rgba(255, 255, 255, 0.8) 45deg 90deg表示从45度到90度是半透明的白色。
    • 以此类推,形成齿状效果。
  2. mask:

    • 使用radial-gradient创建一个径向渐变,中心透明,边缘黑色,形成一个圆形遮罩,使得只有圆环部分可见。
  3. animation:

    • 使用@keyframes定义一个旋转动画,从0度旋转到360度,无限循环。
  4. transform:

    • 在动画中应用rotate变换,使圆环旋转。

结果:

  • 这个代码会创建一个渐变透明且旋转的齿状圆环,圆环会在页面上无限旋转。

你可以根据需要调整圆环的大小、颜色、透明度、旋转速度等参数。