美文网首页
十一、过渡(动画)

十一、过渡(动画)

作者: 飞奔的小白 | 来源:发表于2018-02-28 20:33 被阅读0次

过渡(动画)

1.简介

   Vue在插入,更新或者移除DOM时,提供多种不同方式的应用过渡效果
    本质上还是使用CSS3动画:transition,animation

2.基本用法

  使用transition组件,将要执行的动画的元素包含在该组件内
  <transition>
    运动的元素
  </transition>
  过滤的css类名:6个
  <!DOCTYPE html>
  <html lang="en">
  <head>
<meta charset="UTF-8">
<title>动画</title>
<script type="text/javascript" src="js/vue.min.js"></script>
    </head>
    <style type="text/css" media="screen">
    p{
width:300px;
height:300px;
background:green;
    }   
  .fade-enter-active,.fade-leave-active{
transition:all 2s ease;
  }
  .fade-enter-active{
opacity:1;
width:300px;
height:300px;
  }
.fade-leave-active{
opacity:0;
width:100px;
height:100px;
}
.fade-enter{
opacity:0;
width:100px;
height:100px;
}
</style>
<body>
<div id="itany">
<button @click="flag=!flag">点我</button>
<transition name="fade"
 @before-enter="beforeEnter"
 @enter="enter"
 @after-enter="afterEnter"
 @before-leave="beforeLeave"
 @leave="leave"
 @after-leave="afterLeave"
>   
    <p v-show="flag">北京</p>
</transition>
</div>
</body>
<script type="text/javascript">
var vm = new Vue({
    el:"#itany",
    data:{
        flag:false
    },
    methods:{
        beforeEnter(e){
            alert('动画进入之前会执行');
            e.style.background="yellow"
        },
        enter(){
            alert('动画进入');

        },
        afterEnter(e){
            alert('动画进入之后');
            e.style.background="pink"
        },
        beforeLeave(){
            alert('动画即将之前');
        },
        leave(){
            alert('动画离开');
        },
        afterLeave(){
            alert('动画离开之后');
        }

    }
})
  </script>
</html>

3.钩子函数

  8个

4.结合第三方动画库animate.css一起使用

    <!DOCTYPE html>
    <html lang="en">
    <head>
<meta charset="UTF-8">
<title>动画</title>
<script type="text/javascript" src="js/vue.min.js"></script>
<link rel="stylesheet" href="css/animate.css">
    </head>
    <style type="text/css" media="screen">
   p{
width:300px;
height:300px;
background:green;
margin:0 auto;
  } 
  </style>
  <body>
<div id="itany">
<button @click="flag=!flag">点我</button>
<transition enter-active-class="animated bounceInLeft" leave-active-class="animated bounceInRight"> 
    <p v-show="flag">北京</p>
</transition>
</div>
  </body>
  <script type="text/javascript">
var vm = new Vue({
    el:"#itany",
    data:{
        flag:false
    },
    methods:{
        

    }
})
</script>
 </html>

5.多元素动画

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>多元素动画</title>
<script type="text/javascript" src="js/vue.min.js"></script>
<link rel="stylesheet" href="css/animate.css">
  </head>
  <style type="text/css" media="screen">
 p{
width:100px;
height:100px;
background:green;
margin:20px auto;
}   
</style>
<body>
<div id="itany">
<button @click="flag=!flag">点我</button>
<transition-group enter-active-class="animated bounceInLeft" leave-active-class="animated bounceOutRight">  
    <p v-show="flag" :key="1">itany</p>
    <p v-show="flag" :key="2">北京</p>
</transition-group>
</div>
</body>
<script type="text/javascript">
var vm = new Vue({
    el:"#itany",
    data:{
        flag:false
    },
    methods:{
        

    }
})
</script>
</html>

6.练习

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>多元素动画</title>
    <script type="text/javascript" src="js/vue.min.js"></script>
    <link rel="stylesheet" href="css/animate.css">
</head>
<style type="text/css" media="screen">
 p{
    width:50px;
    height:50px;
    background:green;
    margin:10px auto;
}   
</style>
<body>
    <div id="itany">
    <!-- <button @click="flag=!flag">点我</button> -->
    <input type="text" v-model="name">
    <transition-group enter-active-class="animated bounceInLeft" leave-active-class="animated bounceOutRight">  
        <p v-for="(v,k) in arr2" :key="k" v-show="flag">
            {{v}}
        </p>
    </transition-group>
    </div>
</body>
<script type="text/javascript">
    var vm = new Vue({
        el:"#itany",
        data:{
            flag:true,
            arr:['tom','jack','mike','elex','mark'],
            name:''
        },
        computed:{
            arr2:function(){
                var temp = [];
                this.arr.forEach(val => {
                    if(val.includes(this.name)){
                        temp.push(val);
                    }
                })
                return temp;
            }
        }
    })
</script>
</html>

相关文章

  • 十一、过渡(动画)

    过渡(动画) 1.简介 2.基本用法 3.钩子函数 4.结合第三方动画库animate.css一起使用 5.多元素...

  • JS中的动画事件和过渡事件

    动画事件 动画事件demo 过渡动画事件 过渡动画事件demo

  • CSS3过渡动画

    过渡动画 transition属性简介transition是网页上的过渡动画,变化的逐渐过渡效果,简称过渡动画!列...

  • 过渡与动画

    @(HTML5)[过渡, 动画] [TOC] 五、过渡与动画 过渡 transition-property:过渡属...

  • 动画core animation

    type 动画过渡类型subtype 动画过渡方向

  • Android过渡动画Scene and Transition(

    Android场景过渡——Scene and Transition(一) 场景过渡动画 场景过渡动画是指以动画的形...

  • 016 过渡及动画

    过渡与动画 一、过渡 1、过渡属性 二、动画 1、动画属性 2、动画体 v_hint:动画属性设置给指定选择器标签...

  • CSS3--动画

    特点 过渡和动画之间的相同点过渡和动画都是用来给元素添加动画的过渡和动画都是系统新增的一些属性过渡和动画都需要满足...

  • CSS3动画

    css3动画包括过渡,形变,动画 过渡transition: 指定过渡样式:transition-property...

  • web前端-CSS3动画

    动画和过渡的异同 相同点过渡和动画都是给元素添加动画的过渡和动画都是CSS3新增的属性过渡和动画都需要满足三要素才...

网友评论

      本文标题:十一、过渡(动画)

      本文链接:https://www.haomeiwen.com/subject/ngquxftx.html