在uniapp中给一个元素中包裹了{{}}响应式的字符串但是给这个元素添加了animation动画之后这个{{}}中的内容在页面第一次进入的时候会不显示,页面滚动之后会显示出来
时间: 2023-11-01 12:17:32 浏览: 75
这是因为在页面初次渲染时,动画效果还未执行,所以{{}}中的内容还没有被解析。而当页面滚动时,动画效果已经执行,{{}}中的内容也已经被解析并显示出来了。
解决方法可以尝试给这个元素添加`v-if`指令,将其初始状态设置为不显示,等到动画执行完毕后再将其显示出来。例如:
```html
<template>
<div>
<div v-if="showContent" class="animated" @animationend="onAnimationEnd">{{content}}</div>
</div>
</template>
<script>
export default {
data() {
return {
content: "hello world", // {{}}中的响应式字符串
showContent: false // 是否显示内容的标志位
};
},
methods: {
onAnimationEnd() {
this.showContent = true; // 动画执行完毕后显示内容
}
}
};
</script>
<style>
.animated {
animation: fadeIn 1s;
visibility: hidden;
}
@keyframes fadeIn {
from {
opacity: 0;
visibility: visible;
}
to {
opacity: 1;
visibility: visible;
}
}
</style>
```
这样做的效果是,在页面初次渲染时,元素不显示;等到动画执行完毕后,元素才显示出来,同时{{}}中的内容也已经被解析并显示了出来。
阅读全文