javascript - 为什么过渡组不起作用?
问题描述
<div class="container">
<input placeholder="find PLEASE" v-model="search" />
<transition-group name="fade">
<div v-for="(item, index) in filteredItems" :key="index" class="container__item">{{ item }}</div>
.container {
display: flex;
flex-wrap: wrap;
flex-direction: column;
}
new Vue({
el: '.container',
data() {
return {
search: '',
items: ['lorem opas', 'opas loram ', 'mushroms so good']
}
},
computed: {
filteredItems() {
return this.items.filter(item => item.indexOf(this.search) > -1)
}
}
})
为什么过渡组动画不起作用?所有项目都有一个唯一的键,我也得到了转换组的名称。
解决方案
您的过渡实际上是有效的,但是您没有为它指定任何样式。
从官方文档:
当插入或移除包含在过渡组件中的元素时,会发生以下情况:
Vue 会自动嗅探目标元素是否应用了 CSS 过渡或动画。如果是这样,CSS 过渡类将在适当的时间添加/删除。
为了使您的示例正常工作,您可以这样做:
new Vue({
el: '.container',
data() {
return {
search: '',
items: [
'lorem opas',
'opas loram ',
'mushroms so good'
]
}
},
computed: {
filteredItems() {
return this.items.filter(item =>
item.indexOf(this.search) > -1
)
}
}
})
.container {
display: flex;
flex-wrap: wrap;
flex-direction: column;
}
.fade-enter-active, .fade-leave-active {
transition: opacity .5s;
}
.fade-enter, .fade-leave-to {
opacity: 0;
}
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div class="container">
<input placeholder="find PLEASE" v-model="search" />
<transition-group name="fade">
<div class="container__item"
v-for="(item, index) in filteredItems"
:key="index"
>
{{ item }}
</div>
</transition-group>
</div>
缺少的只是 CSS 过渡类。
<transition-group name="fade">
在这种情况下,指定的名称应该是所有 css 类的前缀。目前,vue 使用了6 个转换类,对于上面的示例,如下所示:
- 淡入淡出
- 淡入淡出
- 淡入淡出
- 淡出
- 淡出-离开-活跃
- 淡出离开
另请注意,您可以transition-group
在应用程序中与 this 的多个实例共享相同的类。
推荐阅读
- java - 给定一个数组,使用加法和减法找到等于目标值的所有组合(2 个整数)
- node.js - 运行“npx create-react-app myfirstreact”时出错
- c# - .Net Core 如何显示显示名称而不是电子邮件地址?
- javascript - 如何在Javascript中做n次幂
- javascript - 如何使用 2FA 代码重新发送 HTTP 请求?
- angular - Angular 10 设置路由更改的可见性
- thrift - Apache Thrift 的 C# TThreadPoolAsyncServer 实现非常慢
- python - 如何仅在一行中获取n个数字并将它们放入列表中并根据列表在python中打印字符?
- java - 为什么我们必须多次调用 getCurrentUser() Firebase?
- javascript - 为什么 XMLHttpRequest.onreadystatechange 返回状态而 XMLHttpRequest.onload 没有?