【CSS】houdini自定义CSS属性实现渐变色旋转动画

现有一段代码,在不旋转整个元素的前提下,渐变背景无法应用动画

html 复制代码
<!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>
    .card {
      --direc: 0deg;
      width: 300px;
      height: 300px;
      border-radius: 4px;
      background-image: linear-gradient(var(--direc), #5aec5a, #3c673c, #3c67e3);
      animation: rotate 3s linear infinite;
    }

    @keyframes rotate {
      to {
        --direc: 360deg
      }
    }
  </style>
</head>

<body>
  <div class="card"></div>
</body>

</html> 

传统模式下,开发者无法干预图片绘制过程,使用 houdini API 自定义 CSS属性,如本例中自定义的属性 --direc,性质为角度、初始值为0、该属性不可被继承。

css 复制代码
@property --direc {
  syntax: '<angle>'; 
  initial-value: 0deg;
  inherits: false;
}
html 复制代码
<!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>
@property --direc {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}

    .card {
      --direc: 0deg;
      width: 300px;
      height: 300px;
      border-radius: 4px;
      background-image: linear-gradient(var(--direc), #5aec5a, #3c673c, #3c67e3);
      animation: rotate 3s linear infinite;
    }

    @keyframes rotate {
      to {
        --direc: 360deg
      }
    }
  </style>
</head>

<body>
  <div class="card"></div>
</body>

</html>
相关推荐
浏览器API调用工程师_Taylor16 分钟前
日报自动化实战:告别手动复制粘贴
前端·javascript·node.js
晴殇i21 分钟前
JavaScript还能这样写?!ES2025新语法让代码优雅到极致
前端·javascript·程序员
浏览器API调用工程师_Taylor31 分钟前
我是如何将手动的日报自动化的☺️☺️☺️
前端·javascript·爬虫
前端Hardy1 小时前
HTML&CSS&JS:抖音爆火的满屏“关心弹幕”酷炫卡片,已经帮你打包好了,快来体验吧!
前端·javascript·css
江城开朗的豌豆1 小时前
我的Vue项目胖成球了!用Webpack给它狠狠瘦个身
前端·javascript
WebInfra1 小时前
Rspack 1.6 发布:让打包产物更小、更纯净
前端·javascript·前端框架
Mintopia1 小时前
⚙️ Next.js 接口限流与审计全攻略 —— 用 @upstash/ratelimit 打造优雅“闸门”
前端·javascript·全栈
Mintopia2 小时前
🌐 实时翻译 + AIGC:Web跨语言内容生成的技术闭环
前端·javascript·aigc
Cache技术分享2 小时前
225. Java 集合 - List接口 —— 记住顺序的集合
前端·后端
前端开发爱好者2 小时前
Vite+ 获得 1250万美元的 A 轮融资,生态加速!
前端·javascript