VUE单页面切换动画代码(全网最好的切换效果)


Posted in Javascript onOctober 31, 2019

我就废话不多说了,直接上代码吧!

// 视图切换动画逻辑
let history = window.sessionStorage
let historyCount = history.getItem('count') * 1 || 0
function routerTransition (to, from) {
 const toIndex = history.getItem(to.name)
 const fromIndex = history.getItem(from.name)
 let direction = 'forward'
 if (toIndex) {
 if (toIndex >= fromIndex || !fromIndex) {
  store.commit('UPDATE_DIRECTION', {direction})
 } else {
  direction = 'reverse'
  store.commit('UPDATE_DIRECTION', {direction})
 }
 } else {
 ++historyCount
 history.setItem('count', historyCount)
 to.path !== '/' && history.setItem(to.name, historyCount)
 direction = 'forward'
 store.commit('UPDATE_DIRECTION', {direction})
 }
}
router.beforeEach(function (to, from, next) {
 routerTransition(to, from)
 next()
})
<template>
 <div id="app">
  <div v-transfer-dom >
  <loading :show="isLoading" :transition="''"></loading>
  </div>
  <transition :name="viewAnimate">
    <router-view v-if="isNetworkOnline"></router-view>
    <no-network v-if="!isNetworkOnline"></no-network>
  </transition>
 </div>
</template>

<script>
import '@/assets/iconfont/iconfont.css'
import { Loading, TransferDom } from 'vux'
import {mapState} from 'vuex'
import noNetwork from '@/page/system/callback/noNetwork.vue'
export default {
 directives: {
 TransferDom
 },
 computed: {
 ...mapState({
  isLoading: state => state.isLoading,
  direction: state => state.direction,
  isNetworkOnline: state => state.isNetworkOnline
 })
 },
 // dynamically set transition based on route change
 watch: {
 '$route' (to, from) {
  if (this.direction === 'forward') {
  this.viewAnimate = 'slide-left'
  } else {
  this.viewAnimate = 'slide-right'
  }
 }
 },
 data () {
 return {
  viewAnimate: 'slide-left'
 }
 },
 components: {
 Loading,
 noNetwork
 }
}
</script>

<style lang="less">
@import '~vux/src/styles/reset.less';
@import '~vux/src/styles/close.less';
@import '~@/styles/common.less';
body {
 background-color: #fbf9fe;
}
@keyframes slideInLeft {
 from {
  transform: translate3d(100%, 0, 0);
  opacity: 1;
 }
 to {
  transform: translate3d(0, 0, 0);
    opacity: 1;
 }
}
@keyframes slideInRight {
 from {
  transform: translate3d(-100%, 0, 0);
  opacity: 1;
 }
 to {
  transform: translate3d(0, 0, 0);
    opacity: 1;
 }
}
@keyframes slideLeftOut {
 from {
  transform: translate3d(0, 0, 0);
  opacity: 0;
 }
 to {
  transform: translate3d(100%, 0, 0);
  opacity: 0;
 }
}
@keyframes slideRightOut {
 from {
  transform: translate3d(0, 0, 0);
  opacity: 0;
 }
 to {
  transform: translate3d(-100%, 0, 0);
  opacity: 0;
 }
} 
.slide-left-enter-active {
 animation: slideInLeft .3s forwards;
 z-index:5;
}

.slide-left-leave-active {
 animation: slideLeftOut .3s forwards;
 z-index:3;
}
 .slide-right-enter-active {
 animation: slideInRight .3s forwards;
 z-index:5;
}

.slide-right-leave-active {
 animation: slideRightOut .3s forwards;
 z-index:3;
} 
</style>

以上这篇VUE单页面切换动画代码(全网最好的切换效果)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery 1.42 checkbox 全选和反选代码
Mar 27 Javascript
javascript限制用户只能输汉字中文的方法
Nov 20 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
Dec 29 Javascript
浅谈jquery中next与siblings的区别
Oct 27 Javascript
javascript设计模式之策略模式学习笔记
Feb 15 Javascript
浅谈vue后台管理系统权限控制思考与实践
Dec 19 Javascript
在vue项目中引入vue-beauty操作方法
Feb 11 Javascript
element ui分页多选,翻页记忆的实例
Sep 03 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
Oct 21 Javascript
js实现带搜索功能的下拉框
Jan 11 Javascript
node+multer实现图片上传的示例代码
Feb 18 Javascript
JavaScript 中的六种循环方法
Jan 06 Javascript
js new Date()实例测试
Oct 31 #Javascript
一起写一个即插即用的Vue Loading插件实现
Oct 31 #Javascript
Vue 使用beforeEach实现登录状态检查功能
Oct 31 #Javascript
vue路由切换之淡入淡出的简单实现
Oct 31 #Javascript
vue-router之实现导航切换过渡动画效果
Oct 31 #Javascript
使用vue-router切换页面时实现设置过渡动画
Oct 31 #Javascript
Vue防止白屏添加首屏动画的实例
Oct 31 #Javascript
You might like
解析如何在PHP下载文件名中解决乱码的问题
2013/06/20 PHP
php截取字符串函数分享
2015/02/02 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
js下用层来实现select的title提示属性
2010/02/23 Javascript
jQuery实现页面滚动时层智能浮动定位实例探讨
2013/03/29 Javascript
JS字符串处理实例代码
2013/08/05 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
js 获取图像缩放后的实际宽高,位置等信息
2017/03/07 Javascript
Bootstrap表单控件学习使用
2017/03/07 Javascript
全面解析Node.js 8 重要功能和修复
2017/06/02 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
JS字符串常用操作方法实例小结
2019/06/24 Javascript
python笔记:mysql、redis操作方法
2017/06/28 Python
对python中for、if、while的区别与比较方法
2018/06/25 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
2019/01/10 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
2019/07/04 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
Python文件操作函数用法实例详解
2019/12/24 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
python上selenium的弹框操作实现
2020/07/13 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
Python常用外部指令执行代码实例
2020/11/05 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
小学班干部竞选演讲稿
2014/04/24 职场文书
诚信考试标语
2014/06/24 职场文书
优秀教师单行材料
2014/12/16 职场文书
综合素质评价自我评价
2015/03/06 职场文书
单位综合评价意见
2015/06/05 职场文书
在校生证明
2015/06/17 职场文书
创业计划书之寿司
2019/07/19 职场文书
logback如何自定义日志存储
2021/08/30 Java/Android
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS