css 闪烁特效求助

2021-02-12 11:03:37 +08:00
 LeeReamond

vue 中想做一个简单的闪烁动画,写了如下代码但是无法实现效果,请问可能是什么原因导致的?

大概就是一行文字想让他每秒钟闪烁一下,然后 window 上绑了一个循环函数。但是最后显示出来效果,它确实每秒间隔会闪烁,但我想让他有逐渐变成透明这种动画效果,实际没有显示出来,可能是什么原因导致的?

<template>
  <div class="flashing" refs="flashing">
    I'm the flashing text
  </div>
</template>

export default {
  mounted(){
    window.setInterval(()=>{
      if (this.$refs.flashing.style.opacity == "0"){
        this.$refs.flashing.style.opacity = "1"
      } else {
       	this.$refs.flashing.style.opacity = "0"
      }
    },1000)
  }
}

<style scope>
.flashing{
  transition:all 0.5s linear;
}
</style>
803 次点击
所在节点    问与答
4 条回复
wunonglin
2021-02-12 11:32:21 +08:00
你这为毛不直接用 css 的 animation ?

```css
. flashing{
animation: .3s linear 1s infinite op;
}

@keyframes op {
0% { opacity: 1; }
50% { opacity: 0; }
100% { opacity: 0; }
}

```
temporary
2021-02-12 11:32:22 +08:00
奇奇怪怪,用 animation 方便点
wunonglin
2021-02-12 11:32:49 +08:00
修正上面
@keyframes op {
0% { opacity: 1; }
50% { opacity: 0; }
100% { opacity: 1; }
}
cyrbuzz
2021-02-12 11:42:21 +08:00
transition 是一种从`有`到`有`的动画。所以你需要给.flashing 一个初始值 .flashing { opacity: 0 }。

另外直接写楼上的动画比用 JS 更简洁清晰易懂。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/753024

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX