【发布时间】:2021-11-18 12:28:13
【问题描述】:
我正在学习 Vue Js。
实际上我正在使用 SCSS 和 Vue Js 制作一个聊天示例应用程序。
在我的项目中,我决定为消息框设置一些 CSS 动画。
这里是动画代码的sn-p:
SCSS:
.push {
...
animation-duration: 0.3s;
animation-timing-function: linear;
animation-fill-mode: forwards;
&.received {
...
animation-name: inFromLeft;
}
&.sent {
...
animation-name: inFromRight;
}
}
@keyframes inFromRight {
0% {
right: -100%;
}
100% {
right: 0;
}
}
@keyframes inFromLeft {
0% {
left: -100%;
}
100% {
left: 0;
}
}
HTML/VUE:
<div id="chat">
<div v-for="(message, index) in messages" :key="index" class="push" :class="type(message)">
...
</div>
</div>
所有消息都以数组格式存储在用户对象中。 (带有 vue 数据)。
问题是有些消息使用了动画而有些消息没有。
我认为这个问题与 vue 及其加载数组的方法有关。
这是最终结果的演示:
https://www.youtube.com/watch?v=EYsBk4HboD8
谁能帮我理解问题以及如何解决?
(目前我更喜欢使用 CSS 动画,避免使用 vue 过渡)。
谢谢!
【问题讨论】:
-
先试试
:class="`push ${type(message)}`"。 -
我试过这个解决方案:class="
push ${type(message)}",但结果相同。
标签: javascript html css vue.js sass