Vue路由切换时的左滑和右滑效果示例


Posted in Javascript onMay 29, 2018

如何实现Vue路由切换时的左滑和右滑效果,因为原作者ustbhuangyi老师的两个慕课项目中都没有这样的效果,于是突发奇想要做这个功能,看了看QQ、微信都没这样的效果,最后发现SegmentFault(思否) 和掘金两个app都有这样的效果,就以此为参考开始做了。

transition

首先看看官网 淡入淡出动画的例子:

<div id="demo">
 <button v-on:click="show = !show">
  Toggle
 </button>
 <transition name="fade">
  <p v-if="show">hello</p>
 </transition>
</div>
new Vue({
 el: '#demo',
 data: {
  show: true
 }
})
.fade-enter-active, .fade-leave-active {
 transition: opacity .5s;
}
.fade-enter, .fade-leave-to {
 opacity: 0;
}

左右切换效果

CSS部分

我们要实现的是左右切换的效果,所以要定义两种动画(左滑和右滑)

.transitionBody{
 transition: all 0.15s ease; /*定义动画的时间和过渡效果*/
}

.transitionLeft-enter,
.transitionRight-leave-active {
  -webkit-transform: translate(100%, 0);
  transform: translate(100%, 0); 
   /*当左滑进入右滑进入过渡动画*/
}

.transitionLeft-leave-active,
.transitionRight-enter {
  -webkit-transform: translate(-100%, 0); 
  transform: translate(-100%, 0); 
}

HTML部分

这里的 keep-alive 是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM,我们要把它也包裹在transition标签内,否则页面将重新渲染,切换的动画也会卡顿

<transition :name="transitionName">
  <keep-alive>
      <router-view class="transitionBody"></router-view>
  </keep-alive>
</transition>

JS部分

在Vue组件中,data必须是一个函数,将对象 {transitionName: ‘transitionLeft'} 挂载到Vue实例中,然后我们可以监听路由的 to 和 from 来判断此时应该左滑还是右滑,来动态切换transition的name值。

export default {
 data() {
   return {
    transitionName: 'transitionLeft'
   };
 },
 watch: { 
  '$route' (to, from) { 
   const arr = ['/goods','/ratings','/seller'];
   const compare = arr.indexOf(to.path)>arr.indexOf(from.path);
   this.transitionName = compare ? 'transitionLeft' : 'transitionRight';
  } 
 }  
}

点击链接体验一下: https://zc95.github.io/demo/vue-sell

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
ExtJS 2.0实用简明教程 之Border区域布局
Apr 29 Javascript
javascript中的作用域和闭包详解
Jan 13 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
Feb 07 Javascript
Javascript实现登录记住用户名和密码功能
Mar 22 Javascript
vue2.0实战之基础入门(1)
Mar 27 Javascript
详解JavaScript按概率随机生成事件
Aug 02 Javascript
利用ECharts.js画K线图的方法示例
Jan 10 Javascript
Angular4 反向代理Details实践
May 30 Javascript
Bootstrap-table使用footerFormatter做统计列功能
Sep 07 Javascript
JQuery常见节点操作实例分析
May 15 jQuery
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
Oct 19 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
Oct 28 Javascript
Vue 组件传值几种常用方法【总结】
May 28 #Javascript
讲解vue-router之命名路由和命名视图
May 28 #Javascript
微信小程序实现图片上传功能
May 28 #Javascript
微信小程序上传图片功能(附后端代码)
Jun 19 #Javascript
讲解vue-router之什么是编程式路由
May 28 #Javascript
讲解vue-router之什么是嵌套路由
May 28 #Javascript
微信小程序上传图片实例
May 28 #Javascript
You might like
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
PHP防止post重复提交数据的简单例子
2014/06/07 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
一个js写的日历(代码部分网摘)
2009/09/20 Javascript
javascript显示用户停留时间的简单实例
2013/08/05 Javascript
JavaScript?Apple设备检测示例代码
2013/11/15 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
JavaScript 对象字面量讲解
2016/06/06 Javascript
JavaScript_ECMA5数组新特性详解
2016/06/12 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
2016/10/14 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
nodejs结合socket.io实现websocket通信功能的方法
2018/01/12 NodeJs
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
JavaScript进阶(三)闭包原理与用法详解
2020/05/09 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
2020/07/31 Javascript
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
python中MySQLdb模块用法实例
2014/11/10 Python
python设计模式大全
2016/06/27 Python
python3.5 tkinter实现页面跳转
2018/01/30 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
基于Django统计博客文章阅读量
2019/10/29 Python
pycharm部署、配置anaconda环境的教程
2020/03/24 Python
在jupyter notebook 添加 conda 环境的操作详解
2020/04/10 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
2021/02/16 Python
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
美国第二大连锁药店:Rite Aid
2019/04/03 全球购物
JSF面试题:Jsf中导航的标签是什么
2013/04/20 面试题
全国道德模范事迹
2014/02/01 职场文书
基层党建工作汇报材料
2014/08/15 职场文书
致800米运动员广播稿(10篇)
2014/10/17 职场文书
Python 数据可视化工具 Pyecharts 安装及应用
2022/04/20 Python