先实现一个点击按钮,然后在列表中添加并显示内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello World</title>
<script src="vue.js" type="text/javascript" charset="utf-8"></script>
<link rel="stylesheet" type="text/css" href="animate.css">
<script src="jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
<script src="velocity.js" type="text/javascript" charset="utf-8"></script>
<style type="text/css">
.v-enter, .v-leave-to{
opacity: 0;
}
.v-enter-active, .v-leave-active{
transition: opacity 1s;
}
</style>
</head>
<body>
<div id="vm">
<div v-for="(item, index) of list" :key="item.id">{{item.title}}</div>
<button type="button" @click="handleClick">Add</button>
</div>
<script>
var count = 0;
var vm = new Vue({
el: '#vm',
data: {
list: []
},
methods: {
handleClick: function() {
this.list.push({
id: count++,
title: 'Hello ReSword'
});
}
}
});
</script>
</body>
</html>
现在要实现一个点击列表中某一项,实现列表过渡的效果
实际上和我们做单个元素过渡的效果基本一致
在列表外加一个transition-group
然后再CSS表中填写和元素过渡一样的样式
运行,点击Add发现就有渐现效果出来了
原理是这样的,当你在外部加了transiton-group标签之后,其实里面就会解析成这样
转换成了对单个元素的过渡动画