vue.js - Vuejs 过渡
问题描述
我想在值发生更改但无法完成时添加转换。当值更新时,我需要更改背景。
谁能帮我吗?
Codesandbox 链接 - Vuejs 转换
<template>
<div id="app">
<div class="box">
<div v-if="change > 0">
<transition name="increase">
<span>+ {{ amount }} </span></transition
>
</div>
<div v-else-if="change < 0">
<transition name="decrease">
<span>- {{ amount }}</span>
</transition>
</div>
<div v-else>{{ amount }}</div>
</div>
<br />
<button @click="generate">Update</button>
</div>
</template>
<script>
export default {
name: "App",
data() {
return {
change: 2,
amount: 100,
};
},
methods: {
generate() {
var amounts = [100, 110, 85, 75, 190];
let changes = [-1.2, -5, 2, 5, 1, 7];
this.amount = amounts[Math.floor(Math.random() * amounts.length)];
this.change = changes[Math.floor(Math.random() * changes.length)];
},
},
created() {},
};
</script>
<style>
#app {
font-family: "Avenir", Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
.box {
width: 100px;
margin: 0 auto;
border: 1px solid #ddd;
padding: 1em 2em;
}
@keyframes higher {
50% {
background: rgba(50, 199, 135, 0.2);
color: #32c787;
}
}
@keyframes lower {
50% {
background: rgba(255, 86, 82, 0.2);
color: #ff5652;
}
}
.increase-enter {
animation: higher 0.5s;
}
.decrease-enter {
animation: lower 0.5s;
}
</style>
PS - 忽略这个,因为我的文字太短而发布。这是一个早已确立的事实,即读者在查看页面布局时会被页面的可读内容分散注意力。使用 Lorem Ipsum 的重点在于它具有或多或少的正态分布字母,而不是使用“这里的内容,这里的内容”,使它看起来像可读的英语。
解决方案
您可以使用key
通知过渡元素存在差异,以便它可以再次触发动画。
此外,使用-active
该类在进入阶段期间应用动画。
https://codesandbox.io/s/transition-forked-vg5pu?file=/src/App.vue
<transition name="increase">
<span :key="amount + change">+ {{ amount }}</span>
</transition>
...
.increase-enter-active {
animation: higher 0.5s;
}
推荐阅读
- reactjs - Uncaught TypeError: map is not a function In Reactjs with Firebase
- c++ - 为什么自动将此变量推断为双精度而不是浮点数?
- javascript - jQuery首先触发一个keydown事件
- python - CSV 文件在由 spark DataFrameWriter 创建时保持打开状态
- scala - 如何将案例类传递给函数参数并相应地获取模式?
- flutter - Flutter,DateTime.now() 在我的代码中不起作用
- java - 我们可以在 Firestore 中查询多深?
- javascript - 有没有办法在多个 selected.js 选择框中预加载选定的选项?
- lazy-loading - Jquery 向所有图像添加 loading=lazy
- c - 内核如何处理对共享映射的并发访问?