Vue.js之js实现过渡

php中世界最好的语言
php中世界最好的语言 原创
2018-03-13 14:26:03 932浏览

这次给大家带来Vue.js之js实现过渡,使用Vue.js的js实现过渡的注意事项有哪些,下面就是实战案例,一起来看一下。

<template>
  <div>
    <button @click="show = !show">Toggle</button>
    <div class="ab">
      <transition
        @before-enter="beforeEnter"
        @enter="enter"
        @leave="leave"
        :css="false"
      >
        <p class="animate-p" v-show="show">i am show</p>
      </transition>
    </div>
  </div></template><script>
  import comA from './components/a.vue'
  import comB from './components/b.vue'
  export default {    components: {comA, comB},
    data () {      
return
 {        show: true
      }
    },    methods: {//      
动画
执行的起始位置
      beforeEnter: function (el) {
        $(el).css({          left: '50px',          opacity: 0
        })
      },      enter: function (el, done) {
        $(el).animate({          left: '200px',          opacity: 1
        }, {          duration: 1500,          complete: done
        })
      },      leave: function (el, done) {
        $(el).animate({          left: '500px',          opacity: 0
        }, {          duration: 1500,          complete: done
        })
      }
    }
  }</script><style>.animate-p {  
position
: absolute;  top: 100px;  left: 0;
}</style>

当让标签隐藏时,执行的是leave动画;
当让标签显示时,执行的是beforeEnter,enter动画

js过渡动画

1.gif

在学习饿了么外卖app时,发现这样写也可以,
给要执行动画的标签添加transition

<div v-show="detailShow" class="detail" transition="fade">

在CSS代码中

   .detail
      ......
      &.fade-transition
        opacity: 1        background: rgba(7, 17, 27, 0.8)
      &.fade-enter,&.fade-leave
        opacity: 0        background: rgba(7, 17, 27, 0)

这样就可以简单的实现一个背景透明度过度的动画

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

Vue.js的计算属性和数据监听

Vue.js的事件绑定 - 内置事件绑定、自定义事件绑定

Vue.js的列表数据的同步更新方法

Vue.js的列表渲染 v-for 数组 对象 子组件

以上就是Vue.js之js实现过渡的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。