vue教程系列第四十一节-transition的过渡应用

我们为什么要使用<transition></transition>这个封装组件

<transition></transition>是vue封装的过渡组件。我们在浏览我们之前做的切换页面效果时,发现很生硬,让人很不舒服。我们浏览一些大型公司的网站尤其是一些很知名的手机端的站点时,会发现他们的切换是非常柔和的,让人非常舒服。这就是客户体验的不同,给人的感受不一样。所以我们就需要引入今天的主觉transition,让我们在与电脑或者白禾木山进行交互的时候,变得柔和地过渡。

步骤:

第一步:用<transition></transition>包裹目标元素

要实现柔和地过渡,我们首先要在想要其实现过渡效果的容器外面套一层<transition></transition>,以示标示这个容器是有一个过渡效果的。

<transition>
 <router-view key="aa"></router-view>
</transition >

这时候依然是没有过渡效果的,因为我们还没有给其进行任何地设置。

“进入” “离开”状态的类的介绍:

这些设置就是为transition定义一系列的类。这些类被定义之后呢,vue会嗅探出目标元素是否应用了css样式,如果应用了呢,就会在恰当的时机添加或者删除这些类名。这些类主要分为两大类,一类是“进入”状态的类,另一类则是“离开”状态的类。

  • “进入”状态的类又分为”enter”, ”enter-active”, ”enter-to”;
  • “离开”状态的类又分为”leave”, ” leave -active”, ” leave -to”
屏幕快照 2018-10-26 上午8.32.33.png

小伙伴们看到这些类之后,可能头都大了,实则理解起来并不难。

  • ”enter-active”:在整个“进入”状态里一直存在,这个类可以被用来定义进入过渡的过程时间,延迟和曲线函数。
  • ”enter”:“进入”的开始状态
  • ”enter-to”: “进入”的结束状态

理解”enter”和”enter-to”很简单,我们可以拿百米赛跑打个比方。我们在起跑的准备阶段即为”enter”的状态;当到达100米这个目标点时,即为“进入”的结束状态;”enter-active”存在于开始状态到结束状态的整个过程。

离开状态和进入状态相似,在此不再赘述。

一般情况下,”enter”和”leave-to”的状态是一样的,”leave”和“enter-to”的状态是一样的。

我们也不用所有的类都定义,我们只要记住定义其中四个类就可以,分别是以下几个:”enter-active”,” leave -active”, ”enter”, ” leave -to”

类的前缀介绍:

当我们没有给transition设置name属性时,以上介绍的类的前缀是v,例如enter的类名为:v-enter。当我们给transition设置name属性时,其前缀是name值,例如我们设置name=”fade”,那么enter的类名为:fade-enter。

第二步:给transition定义类

  1. 设置name值
<transition name="fade">
  1. 为其定义类
.fade-enter-active, .fade-leave-active {
 transition: opacity .4s
}
.fade-enter,.fade-leave-to {
 opacity: 0
}

这时候我们就可以在浏览器里看到过渡的效果了。我们会发现目标元素上会有类的添加和删除,速度很快,就是一瞬间的事儿,这些类就是我们定义的类。

第三步:mode的使用

我们看到这个过渡跟我们的预期有些不一样,切换的时候会有位置的移动。造成这种现象的原因是后一页的进入和前一页的离开同时进行造成的。这是我们不想看到的,我们想让前一页先离开,后一页再进入,这样就不会有位置的移动了。Transition里还有一个mode属性,将其设置成mode=”out-in”,就可以解决这个问题。当然。Mode还有另一个值是”in-out”,先进后出,大家可以测试一下这两个值的区别噢!

可能我的视频是会罗嗦一些,只是为了让所有刚步入前端学习vue的小伙伴们都能明白。如果有什么建议或者有哪些不懂的地方,欢迎给我留言,只要我会的,我都会第一时间回复。

就到这里了,休息休息一会儿吧:)明天继续加油噢!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,348评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,122评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,936评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,427评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,467评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,785评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,931评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,696评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,141评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,483评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,625评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,291评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,892评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,741评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,492评论 2 348

推荐阅读更多精彩内容

  • 在学习 element ui 时,发现组件的过渡用的是 Vue.js 提供的 标签。这里来好好认识下 vue ...
    VioletJack阅读 4,090评论 1 10
  • 混合 组件系统是Vue的核心,如何合理的规划组件,是我们在开发中需要深入思考的问题,我个人习惯把一些组件使用逻辑和...
    li4065阅读 842评论 0 1
  • 概述 Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。包括以下工具: 在 CSS 过渡和...
    寒梁沐月阅读 1,318评论 0 3
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,046评论 0 29
  • 一字当头的最后一年。 按理说我应该回顾回顾这一年来都干了些啥,可是想想除了经历了高考上了大学之外也没啥惊天动地轰轰...
    洛书呐阅读 285评论 2 1