17.vue中多个元素或者多个组件的过渡动画列表过渡

1.多个元素过渡动画

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vvue中Js动画与Velocity.js库结合</title>
    <script src="./vue.js"> </script>
    <style>
        .v-enter,.v-leave-to{
            opacity: 0;
        }

        .v-enter-active,v-leave-active{
            transition:opacity 1s;
        }
    </style>

</head>
<body>


   <div id="root">
        <!-- mode="in-out"多个元素先进入在隐藏 -->
       <transition mode="in-out"> 
        <!-- dom的复用会让动画不在出现,所以加上key值动画出现 -->
            <div v-if="show" key="hello">hello</div>
            <div v-else ey="Bye World">Bye World</div>
       </transition>  
       <button @click="handleClick">toggle</button>

   </div>

   <script>  

       Vue.component('child-one',{
          
           template:'<div>child-one</div> '
        })
 
       var app = new Vue({
           el:'#root',
           data:{
            show :true
           },
           methods:{
            handleClick:function(){
                 this.show = !this.show
            }

           }

       })

   </script>

</body>

</html>

2.多个组件的过渡动画

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vvue中Js动画与Velocity.js库结合</title>
    <script src="./vue.js"> </script>
    <style>
        .v-enter,.v-leave-to{
            opacity: 0;
        }

        .v-enter-active,v-leave-active{
            transition:opacity 1s;
        }
    </style>

</head>
<body>


   <div id="root">
        <!-- mode="in-out"多个元素先进入在隐藏 -->
       <transition mode="in-out"> 
           <component :is="type">

           </component>
            <!-- <child-one v-if="show">hello</child-one>
            <child-two v-else>Bye World</child-two> -->
       </transition>  
       <button @click="handleClick">toggle</button>

   </div>

   <script>  

       Vue.component('child-one',{
          
           template:'<div>child-one</div> '
        })

       Vue.component('child-two',{
          
          template:'<div>child-two</div> '
       })
 
       var app = new Vue({
           el:'#root',
           data:{
            type:'child-one'
           },
           methods:{
            handleClick:function(){
                 this.type = this.type === 'child-one' ? 'child-two':'child-one'
            }

           }

       })

   </script>

</body>

</html>

3.vue中的列表过渡

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue中的列表过渡</title>
    <script src="./vue.js"> </script>
    <style>
        .v-enter,.v-leave-to{
            opacity: 0;
        }

        .v-enter-active,v-leave-active{
            transition:opacity 1s;
        }
    </style>

</head>
<body>


   <div id="root">
       <!-- 相当于在列表每一层添加transition动画 -->
       <transition-group>
            <div v-for="(item,index) of list" :key="item.id">{{item.title}}</div>  
       </transition-group>

       <button @click="handleClick">add</button>   

   </div>

   <script>  

       var count = 0;
       var app = new Vue({
           el:'#root',
           data:{
               list:[]
           },
           methods:{
            handleClick:function(){
                 this.list.push({
                     id:count++,
                     title: 'helloWorld'
                 })
            }

           }

       })

   </script>

</body>

</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,053评论 3 119
  • 多个元素的过渡效果 对于多个元素进行切换时,我们可用v-if/vue-else来做,如下图框2中。要想给他们添加过...
    八宝君阅读 8,770评论 1 3
  • 今日运动 8060步,30个仰卧起坐。 今日嘉许 嘉许自己陪伴老妈看中医,陪爸妈吃饭。 嘉许温和地拒绝,先满足自己...
    阿点的亲子芳疗会客厅阅读 1,490评论 0 0
  • 是用来获取目录下的文件名的工具 是用来重命名的工具 获取后缀名为.apk的文件名.txt 获取目录和子目录的文件名
    宇文黎琴阅读 2,642评论 0 0
  • 冬天到了,是时候,有事没事聚火锅了。火锅好吃,但是要长胖,怎么办?今天和大家分享一下,怎么吃火锅不胖。 首先,我们...
    tcyun阅读 4,423评论 2 0

友情链接更多精彩内容