暂无更多
刷新运行,完美实现效果~~~~
参考资料:https://cn.vuejs.org/v2/guide/transitions.html
补充:
问题1:不同类型的组件之间切换,有过渡效果,而相同组件(不同内容)切换则没有过渡效果
vue官网的描述:当有相同标签名的元素切换时,需要通过key特性设置唯一的值来标记以让Vue区分它们,否则Vue为了效率只会替换相同标签内部的内容。即使在技术上没有必要,给在组件中的多个元素设置key是一个更好的实践。
改进后代码
给组件添加了key=”index”了之后,不管任何类型都有过渡效果了,因为此时vue将每一个组件区分为不同的组件
问题2:前一个组件滑动出去后,后一个组件没有滑动效果,而是直接显示了
过渡模式有一个问题:一个离开过渡的时候另一个开始进入过渡。这是的默认行为-进入和离开同时发生,因为这样也导致了两个卡片的过渡不太复合需求,我们需要的是一个先离开后另一个再进入。
同时生效的进入和离开的过渡不能满足所有要求,所以Vue提供了过渡模式
- in-out:新元素先进行过渡,完成之后当前元素过渡离开。
- out-in:当前元素先进行过渡,完成之后新元素过渡进入。
因此我们需要在transition标签中添加mode来达成效果:
如果要使用列表排序的话,需要使用transition-group,下面是一个简单的例子
Add
Remove
{{item}}
newVue({
el:'#list-demo',
data:{
items:[1,2,3,4,5,6,7,8,9],
nextNum:10
},
methods:{
randomIndex:function(){
returnMath.floor(Math.random()*this.items.length)
},
add:function(){
this.items.splice(this.randomIndex(),0,this.nextNum++)
},
remove:function(){
this.items.splice(this.randomIndex(),1)
},
}
})
.list-item{
display:inline-block;
margin-right:10px;
}
.list-enter-active,.list-leave-active{
transition:all1s;
}
.list-enter,.list-leave-to
/*.list-leave-activeforbelowversion2.1.8*/{
opacity:0;
transform:translateY(30px);
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。