Vue过渡,可以在元素从DOM中移除,插入时自动调用过渡效果。根据设定,会适时的触发过渡效果。

在使用的目标标签里添加 transition:

<div  transition="my_transition"></div>

https://jsfiddle.net/miloer/n282tqwv/

它还可以和v-if,v-show,v-for,动态组件一起使用。

官方对Vue过渡过程的讲解:

  1. 尝试以 ID "my-transition" 查找 JavaScript 过渡钩子对象——通过Vue.transition(id, hooks) 或 transitions 选项注册。如果找到了,将在过渡的不同阶段调用相应的钩子。
  2. 自动嗅探目标元素是否有 CSS 过渡或动画,并在合适时添加/删除 CSS 类名。
  3. 如果没有找到 JavaScript 钩子并且也没有检测到 CSS 过渡/动画,DOM 操作(插入/删除)在下一帧中立即执行。

还可以利用javascript钩子来实现过渡,一开始我把钩子写在里面了,它放在外面。

官方CSS块代码有个这样的注释:

/* .expand-enter 定义进入的开始状态 */
/* .expand-leave 定义离开的结束状态 */

这个就是动画结束后的最终状态,我觉得它只是一个局部状态,最终还是受目标标签里的代码约束的。

https://jsfiddle.net/miloer/n282tqwv/1/

过渡的CSS名,

类名的添加和切换取决于 transition 特性的值。比如 transition="fade",会有三个 CSS 类名:

  1. .fade-transition 始终保留在元素上。
  2. .fade-enter 定义进入过渡的开始状态。只应用一帧然后立即删除。
  3. .fade-leave 定义离开过渡的结束状态。在离开过渡开始时生效,在它结束后删除。

如果 transition 特性没有值,类名默认是 .v-transition.v-enter 和 .v-leave

官方的流程详解,我觉得挺好

当 show 属性改变时,Vue.js 将相应地插入或删除div元素,按照如下规则改变过渡的 CSS 类名:

如果 show 变为 falseVue.js 将:

  1. 用 beforeLeave 钩子;
  2. 添加 v-leave 类名到元素上以触发过渡;
  3. 调用 leave 钩子;
  4. 等待过渡结束(监听 transitionend 事件);
  5. 从 DOM 中删除元素并删除 v-leave 类名;
  6. 调用 afterLeave 钩子。

如果 show 变为 trueVue.js 将:

  1. 调用 beforeEnter 钩子;
  2. 添加 v-enter 类名到元素上;
  3. 把它插入 DOM
  4. 调用 enter 钩子;
  5. 强制一次CSS 布局,让 v-enter 确实生效。然后删除 v-enter 类名,以触发过渡,回到元素的原始状态;
  6. 等待过渡结束;
  7. 调用afterEnter钩子。

在加一个官方的小例子,整理出来:https://jsfiddle.net/miloer/7zjq41mz/

Vue入门笔记#过渡的更多相关文章

  1. VUE 入门笔记

    前端的MVVM概念今年来也算是如火如荼,了解完 MVVM的概念,也该找个去尝试下 首先我先试了下 国内小而美的 VUE 试着照着文档敲出入门文件,内容都在注释里 <!doctype html&g ...

  2. 后端小白的VUE入门笔记, 前端高能慎入

    因为项目需要前后端分离,后端竟然不用控制view层了,页面的跳转后端不再干涉,(前端的vue经过打包后成了一张index.html) 后端只需要响应给前端json串就ok,其实这不是爽歪歪?但是觉得还 ...

  3. Vue入门笔记#数据绑定语法

    #数据绑定语法# #文本: 数据绑定的基础表型形式,使用“Mustache”语法(双大括号)(特意查了一下Mustache同“moustache”释义为:髭:上唇的胡子,小胡子,最起码我觉得挺形象的) ...

  4. Vue入门笔记(一)--基础部分

    github地址:https://github.com/iTao9354/basicVue(demo01-28) 一.初识Vue 使用双大括号{{message}}将数据渲染进DOM中.      可 ...

  5. vue入门笔记

    Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上手,还便于与 ...

  6. 后端小白的VUE入门笔记, 进阶篇

    使用 vue-cli( 脚手架) 搭建项目 基于vue-cli 创建一个模板项目 通过 npm root -g 可以查看vue全局安装目录,进而知道自己有没有安装vue-cli 如果没有安装的话,使用 ...

  7. vue入门笔记(新手入门必看)

    一.什么是Vue? 1.    vue为我们提供了构建用户界面的渐进式框架,让我们不再去操作dom元素,直接对数据进行操作,让程序员不再浪费时间和精力在操作dom元素上,解放了双手,程序员只需要关心业 ...

  8. Vue入门笔记(二)--基础部分之条件渲染

    github地址:https://github.com/iTao9354/basicVue/tree/master/conditional%20rendering(demo01-03) 一.v-if ...

  9. 学习Vue 入门到实战——学习笔记

    闲聊: 自从进了现在的公司,小颖就再没怎么接触vue了,最近不太忙,所以想再学习下vue,就看了看vue相关视频,顺便做个笔记嘻嘻. 视频地址:Vue 入门到实战1.Vue 入门到实战2 学习内容: ...

随机推荐

  1. lftp使用普通ftp模式登录

    set ftp:use-feat no set ftp:passive-mode yes set ftp:ssl-protect-data no set ssl:verify-certificate ...

  2. linux学习之-vsftp

    一.简介 vsftp是一个基于GPL发布的类unix系统上使用的ftp服务器软件,它的全称是very secure FTP ,软件的编写初衷是为了代码的安全,另外高速与高稳定性也是vsftp的两个重要 ...

  3. 【转】TextView长按复制实现方法小结

    有这么一个需求,用户在浏览文本信息时希望长按信息就能弹出复制的选项方便保存或者在别的页面使用这些信息.类似的, 就像长按WebView或者EditText的内容就自动弹出复制选项. 这里面主要是2个特 ...

  4. nyoj814_又见拦截导弹_DP

    又见拦截导弹 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 大家对拦截导弹那个题目应该比较熟悉了,我再叙述一下题意:某国为了防御敌国的导弹袭击,新研制出来一种导弹拦 ...

  5. Match:Seek the Name, Seek the Fame(POJ 2752)

    追名逐利 题目大意:给定一个字符串S,要你找到S的所有前缀后缀数组 还是Kmp的Next数组的简单应用,但是这一题有一个BUG,那就是必须输出字符串的长度(不输出就WA),然而事实上对于abcbab, ...

  6. Myeclipse常用快捷键

    转自:http://zjxbw.blog.51cto.com/2808787/543792 Ctrl+Shift+L    显示所有快捷键 Ctrl+K      参照选中的词(Word)快速定位到下 ...

  7. IOS - UITableView分批显示数据 实现点击加载更多

    Phone屏幕尺寸是有限的,如果需要显示的数据很多,可以先数据放到一个table中,先显示10条,table底部有一察看更多选项,点击察看更多查看解析的剩余数据.基本上就是数据源里先只放10条, 点击 ...

  8. [Android Pro] Test win

    http://www.cnblogs.com/mayingbao/ http://www.cnblogs.com/hyddd/

  9. W3C对DOM2.0定义的标准事件

    DOM2.0模型将事件处理流程分为三个阶段: 一.事件捕获阶段, 二.事件目标阶段, 三.事件起泡阶段. 具体如图(图片来源于网络,侵删) 事件捕获:当某个元素触发某个事件(如onclick),顶层对 ...

  10. ssh-keygen详解

    先来一段google wiki关于ssh key的解释,对应的连接为:https://wiki.archlinux.org/index.php/SSH_keys_(%E7%AE%80%E4%BD%93 ...