css - Svelte:内联 CSS 动画不起作用

标签 css animation svelte svelte-3

不能像这样的内联 CSS 动画工作:

<h1 class="test" style="animation: bg 2s linear infinite">Hello {name}!</h1>

<style>
.test { 
    background: yellow;
}

@keyframes bg {
    from {
      background: red;
    }
    to {
      background: green;
    }
  }
</style>

https://svelte.dev/repl/e32b72cb98cb4b78a47b1bcb1ecab9e9?version=3.53.1

但是如果删除style属性

<h1 class="test">Hello {name}!</h1>

并添加

.test 
    background: yellow;
    animation: bg 2s linear infinite;
}

它有效! 但我想添加动画作为内联样式。

最佳答案

默认情况下,组件样式中的所有内容都仅限于组件,并且内联样式显然不会被识别为引用定义的@keyframes

可以在选择器周围使用 :global() 将常规选择器设为全局,但对于 @keyframes ,您必须在名称前加上 -global- (在编译时再次删除)。

@keyframes -global-bg { ... }

REPL

请注意,这实际上被定义为全局,然后任何其他定义名为 bg 的全局关键帧的组件都会造成干扰。

关于css - Svelte:内联 CSS 动画不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74491114/

相关文章:

css - 左列不是 100% 高度

javascript - 当它们是多个 w.r.to parent div 时删除子 div

jquery - 滑出 div,使用 .show ignones {position :absolute; bottom:0px;} in chrome & safari, works in firefox

ios - 什么类似于 swift 中的坐标布局(如 android)?

ios - UIView 组合不同时长的动画

javascript - slim 的路线给了我 404

asp.net - 如何使用像 Stack Overflow 一样的漂亮语法样式在网页上显示代码示例?

java - 我的 ImageView 的 Android 动画有什么问题?

components - Svelte - 组件一如何使用组件二的功能?

javascript - 相邻的 Svelte 商店可以互相更新吗?