transform 支持单独赋值改变
AI-摘要
切换
AnZhiYu GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
transform 支持单独赋值改变
安知鱼在掘金看到一篇文章
看完以后有感而发transform
在制作动画时经常被占用,因为一个元素只能使用一个 transform,所以当我有多属性值需要设置时,我通常的做法是通过添加一个父元素来给它设置 transform 属性。
比如在魔改博客的过程中希望改变transform
中的某一部分, 我必须把前面的部分也照抄一遍才能达到覆盖修改的目的
1 | header.nav { |
所以transform
很需要能够像background
那样能够有单独书写的属性以覆盖 transform 中的值。
但是从Chrome 104
开始,浏览器终于正式支持单独赋值了
比如说
1 | header.nav { |
可以写成
1 | header.nav { |
这样如果需要改变某一部分,就只需要像普通属性一样覆盖就行了
1 | header.nav { |
想了解更多的话可以去看看原文,但是这个写法实在是太新了,不建议这么玩。
基于此我们可以发散思维想一想还有什么办法可以解决transform占用
的问题,没错就是 css 变量
1 | div { |
通过 CSS 变量,将 transform 拆分
1 | div { |
经过这样拆分以后,CSS 变量就成了独立属性,如果需要覆盖,只需要修改其中一个就行了,而无需关注–translate 是什么样的,这样变化的部分就可以单独作为一个公共的样式了,如下
1 | .div1 { |
这么做如果是单纯的状态变化是没有问题的,只需要使用transition: .3s;
就可以实现过渡动画,不过当在做 animation
的时候,
会发现过渡不了,此时需要下面的代码来实现过渡@property
属性可以让我们的自定义属性--scale
的变化像 transition: .3s
那样来实现过渡效果。
1 | @property --scale { |
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果