只需添加一个类就可以制作SVG动画

格林先生

我使用SMIL动画创建了svg加载器动画。我只是通过添加一个类名显示svg元素内loader

提琴单击容器查看装载机

.loader{
    position: relative;
}

/* image */
.loader::before {
    background-image: url('loader.svg');
    /* other properties */
} 

/* blocker */
.loader::after {
    /* other properties */
}

但是现在,我意识到SMIL在chrome中已弃用因此,我决定使用CSS处理动画。但是,如果我使用CSS处理动画,那么我将无法像上面所做的那样管理代码,即仅通过添加类即可。

如果我使用的是CSS动画,则需要在容器内添加一个新元素,然后使用inline-svg概念IMO。

无论如何,在使用css动画时,我可以通过添加类来管理动画?

一些要点:

  • 我不想添加任何新元素。
  • 我将使用JavaScript只是添加一个类,仅此而已。
  • 我不想生成gif(光栅图像)。

对于SMIL和CSS动画,我都有一些小提琴:

我只限于添加一个类来管理动画,因为它可以使我的代码保持井井有条,而且我认为也可以使用CSS动画来做到这一点。

毛伊曼

您可以在loader.svg中设置css动画:

<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" version="1.1">
  <style>
    rect{
      animation:fill 1s linear infinite;
    }

    @keyframes fill{
      0%{
        fill:#f05223;
      }
      100%{
        fill:white;
      }
    }

    rect:nth-child(2){
      animation-delay:.25s;
    }

    rect:nth-child(3){
      animation-delay:.50s;
    }

    rect:nth-child(4){
      animation-delay:.75s;
    }
  </style>
    <rect width="50" height="50" stroke="white" fill="white"></rect>
    <rect x="50" width="50" height="50" stroke="white" fill="white"></rect>
    <rect x="50" y="50" width="50" height="50" stroke="white" fill="white"></rect>
    <rect width="50" x="0" y="50" height="50" stroke="white" fill="white"></rect>
</svg>

https://plnkr.co/edit/tcbdwaSNgadrKYQr5iex?p=preview

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

仅使用一个动画类就可以无缝地来回转换?

来自分类Dev

只需一个字就可以打印历史记录中的命令

来自分类Dev

如果无需编写代码就可以制作游戏,为什么要编码一个?

来自分类Dev

只需一行就可以合并来自两个不同文本文件的数据(Python)

来自分类Dev

每次发出一个zip 2时就可以观察到

来自分类Dev

我如何只用一个命令就可以观看和实时重载-Gruntjs

来自分类Dev

在结构归纳证明中概括一个要求就可以使用归纳假设

来自分类Dev

每次发出一个zip 2时就可以观察到

来自分类Dev

只需一行就可以从二维数组中获取子数组

来自分类Dev

将两个函数加在一起就可以得到一个值?

来自分类Dev

最多更改一个数字就可以获得多少个可被3整除的数字

来自分类Dev

Scanf对标准输入采用两个循环值,但仅需一个就可以结束循环

来自分类Dev

最多更改一个数字就可以获得多少个可被3整除的数字

来自分类Dev

Perl正则表达式:如何仅使用一个快递就可以捕获多组?

来自分类Dev

如果您只有一个KClass对象,就可以调用带有类型化参数的乐趣?

来自分类Dev

修改一个大文件,然后就可以回滚所做的更改(几乎)

来自分类Dev

如何获得每次制作一次的食谱(适用于GNU的东西就可以了)

来自分类Dev

无论如何,是否知道前一个种子就可以计算下一个种子?

来自分类Dev

如何使用Javascript一次单击就可以为嵌套在UL中的多个子元素添加和删除类?

来自分类Dev

如果只在一个屏幕上显示文字,就可以像猫一样减少工作量

来自分类Dev

动态验证-只需添加一个

来自分类Dev

他们为什么说在“原型模式”中-只要需要一个新对象就可以简单地复制原始对象?

来自分类Dev

在我的XSL文件中包含一个C#(.cs)文件,这样我就可以使用智能感知了吗?

来自分类Dev

只要第一个字符不是数字,就可以使用正则表达式匹配任意数量的字符

来自分类Dev

在一个变量中对多个观察进行分类,这样我就可以将它们归类在新的专栏中。如何使代码更短?在R中

来自分类Dev

打印机无法正常工作。给它一个静态IP,现在就可以使用了!但为什么?

来自分类Dev

在Excel VBA中命名对象,以便将其复制到另一个工作表/工作簿后就可以选择它

来自分类Dev

你是如何做到的,这样你就可以自动重定向到存储在 .txt 文件中的另一个链接?

来自分类Dev

只需一次查找就可以在HashMap上执行一次“获取”和两次“插入”操作吗?

Related 相关文章

  1. 1

    仅使用一个动画类就可以无缝地来回转换?

  2. 2

    只需一个字就可以打印历史记录中的命令

  3. 3

    如果无需编写代码就可以制作游戏,为什么要编码一个?

  4. 4

    只需一行就可以合并来自两个不同文本文件的数据(Python)

  5. 5

    每次发出一个zip 2时就可以观察到

  6. 6

    我如何只用一个命令就可以观看和实时重载-Gruntjs

  7. 7

    在结构归纳证明中概括一个要求就可以使用归纳假设

  8. 8

    每次发出一个zip 2时就可以观察到

  9. 9

    只需一行就可以从二维数组中获取子数组

  10. 10

    将两个函数加在一起就可以得到一个值?

  11. 11

    最多更改一个数字就可以获得多少个可被3整除的数字

  12. 12

    Scanf对标准输入采用两个循环值,但仅需一个就可以结束循环

  13. 13

    最多更改一个数字就可以获得多少个可被3整除的数字

  14. 14

    Perl正则表达式:如何仅使用一个快递就可以捕获多组?

  15. 15

    如果您只有一个KClass对象,就可以调用带有类型化参数的乐趣?

  16. 16

    修改一个大文件,然后就可以回滚所做的更改(几乎)

  17. 17

    如何获得每次制作一次的食谱(适用于GNU的东西就可以了)

  18. 18

    无论如何,是否知道前一个种子就可以计算下一个种子?

  19. 19

    如何使用Javascript一次单击就可以为嵌套在UL中的多个子元素添加和删除类?

  20. 20

    如果只在一个屏幕上显示文字,就可以像猫一样减少工作量

  21. 21

    动态验证-只需添加一个

  22. 22

    他们为什么说在“原型模式”中-只要需要一个新对象就可以简单地复制原始对象?

  23. 23

    在我的XSL文件中包含一个C#(.cs)文件,这样我就可以使用智能感知了吗?

  24. 24

    只要第一个字符不是数字,就可以使用正则表达式匹配任意数量的字符

  25. 25

    在一个变量中对多个观察进行分类,这样我就可以将它们归类在新的专栏中。如何使代码更短?在R中

  26. 26

    打印机无法正常工作。给它一个静态IP,现在就可以使用了!但为什么?

  27. 27

    在Excel VBA中命名对象,以便将其复制到另一个工作表/工作簿后就可以选择它

  28. 28

    你是如何做到的,这样你就可以自动重定向到存储在 .txt 文件中的另一个链接?

  29. 29

    只需一次查找就可以在HashMap上执行一次“获取”和两次“插入”操作吗?

热门标签

归档