【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>
相关推荐
前端付豪7 分钟前
Prompt Playground(实现提示词工作台)
前端·人工智能·后端
竹林8188 分钟前
在NFT项目中集成IPFS:从Pinata上传到前端展示的完整实战与踩坑
前端·javascript
取名不易8 分钟前
canves实现画布
前端
AlkaidSTART11 分钟前
深入浅出 React Hooks 原理:从 Fiber 的 memoizedState 链表讲到 updateQueue 调度
前端
一颗小行星13 分钟前
Harness Engineering 前端开发的下一个阶段
前端·ai编程
踩着两条虫26 分钟前
重磅!这款AI低代码平台火了:拖拽生成应用,一键输出Web/H5/UniApp
前端·低代码·ai编程
我命由我1234527 分钟前
Vite - Vite 最小项目
服务器·前端·javascript·react.js·ecmascript·html5·js
布局呆星27 分钟前
Vue3 | 事件绑定与双向数据绑定
前端·javascript·vue.js
Hilaku29 分钟前
前端资质越高,越来越不敢随便升级框架?
前端·javascript·架构
自然常数e32 分钟前
预处理讲解
java·linux·c语言·前端·visual studio