Vue.js(过渡)

1.过渡

Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。

Vue 提供了内置的过渡封装组件,该组件用于包裹要实现过渡效果的组件。

语法格式

<transition name = "nameoftransition">
   <div></div>
</transition>

具体代码 

<div id = "databinding">
<button v-on:click = "show = !show">点我</button>
<transition name = "fade">
    <p v-show = "show" v-bind:style = "styleobj">动画实例</p>
</transition>
</div>
<script type = "text/javascript">
var vm = new Vue({
el: '#databinding',
    data: {
        show:true,
        styleobj :{
            fontSize:'30px',
            color:'red'
        }
    },
    methods : {
    }
});
</script>

总结

过渡其实就是一个淡入淡出的效果。Vue在元素显示与隐藏的过渡中,提供了 6 个 class 来切换:

  • v-enter:定义进入过渡的开始状态。在元素被插入之前生效,在元素被插入之后的下一帧移除。

  • v-enter-active:定义进入过渡生效时的状态。在整个进入过渡的阶段中应用,在元素被插入之前生效,在过渡/动画完成之后移除。这个类可以被用来定义进入过渡的过程时间,延迟和曲线函数。

  • v-enter-to:  定义进入过渡的结束状态。在元素被插入之后下一帧生效 (与此同时 v-enter 被移除),在过渡/动画完成之后移除。

  • v-leave: 定义离开过渡的开始状态。在离开过渡被触发时立刻生效,下一帧被移除。

  • v-leave-active:定义离开过渡生效时的状态。在整个离开过渡的阶段中应用,在离开过渡被触发时立刻生效,在过渡/动画完成之后移除。这个类可以被用来定义离开过渡的过程时间,延迟和曲线函数。

  • v-leave-to: 定义离开过渡的结束状态。在离开过渡被触发之后下一帧生效 (与此同时 v-leave 被删除),在过渡/动画完成之后移除。

 

多个元素的过渡

我们可以设置多个元素的过渡,一般列表与描述:

需要注意的是当有相同标签名的元素切换时,需要通过 key 特性设置唯一的值来标记以让 Vue 区分它们,否则 Vue 为了效率只会替换相同标签内部的内容。

 如下实例:

<transition>
  <button v-if="isEditing" key="save">
    Save
  </button>
  <button v-else key="edit">
    Edit
  </button>
</transition>

 在一些场景中,也可以通过给同一个元素的 key 特性设置不同的状态来代替 v-if 和 v-else,上面的例子可以重写为:

 

<transition>
  <button v-bind:key="isEditing">
    {{ isEditing ? 'Save' : 'Edit' }}
  </button>
</transition>

 使用多个 v-if 的多个元素的过渡可以重写为绑定了动态属性的单个元素过渡。例如:

<transition>
  <button v-if="docState === 'saved'" key="saved">
    Edit
  </button>
  <button v-if="docState === 'edited'" key="edited">
    Save
  </button>
  <button v-if="docState === 'editing'" key="editing">
    Cancel
  </button>
</transition>

 

 可以重写为:

<transition>
  <button v-bind:key="docState">
    {{ buttonMessage }}
  </button>
</transition>

// ...
computed: {
  buttonMessage: function () {
    switch (this.docState) {
      case 'saved': return 'Edit'
      case 'edited': return 'Save'
      case 'editing': return 'Cancel'
    }
  }
}

 

相关推荐

  1. Vue 过渡

    2024-04-29 14:42:05       9 阅读
  2. vue3 过渡动画

    2024-04-29 14:42:05       50 阅读
  3. Vue.js(过渡)

    2024-04-29 14:42:05       12 阅读
  4. Vue 过渡和动画

    2024-04-29 14:42:05       8 阅读
  5. vue router 右到左过渡动画

    2024-04-29 14:42:05       34 阅读
  6. vue3学习——router-view 过渡动画

    2024-04-29 14:42:05       29 阅读
  7. vue3中使用过渡动画transition

    2024-04-29 14:42:05       21 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-29 14:42:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-29 14:42:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-29 14:42:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-29 14:42:05       18 阅读

热门阅读

  1. Linux内核驱动开发-001字符设备开发-002led杂项驱动

    2024-04-29 14:42:05       10 阅读
  2. Stylus入门使用方法

    2024-04-29 14:42:05       12 阅读
  3. UKP3D轴侧图出图按照哪些标准

    2024-04-29 14:42:05       9 阅读
  4. 在docker中安装paddle serving @FreeBSD(待续)

    2024-04-29 14:42:05       10 阅读
  5. c++课堂——动态规划

    2024-04-29 14:42:05       13 阅读
  6. 【排序算法】快速排序

    2024-04-29 14:42:05       11 阅读
  7. puppeteer实现网页自动化

    2024-04-29 14:42:05       14 阅读