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图片放大镜功能的实例代码
Mar 26 Javascript
Jquery中val()表单取值赋值的实例代码
Aug 15 Javascript
Javascript检查图片大小不要让大图片撑破页面
Nov 04 Javascript
jquery插件jquery.confirm弹出确认消息
Dec 22 Javascript
JavaScript如何实现组合列表框中元素移动效果
Mar 01 Javascript
最常见和最有用的字符串相关的方法详解
Feb 06 Javascript
基于js 各种排序方法和sort方法的区别(详解)
Jan 03 Javascript
Vuejs开发环境搭建及热更新【推荐】
Sep 07 Javascript
基于AngularJs select绑定数字类型的问题
Oct 08 Javascript
微信小程序实现多个按钮的颜色状态转换
Feb 15 Javascript
layui导出所有数据的例子
Sep 10 Javascript
React如何使用axios请求数据并把数据渲染到组件
Aug 05 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仿ZOL分页类代码
2008/10/02 PHP
php生成数字字母的验证码图片
2015/07/14 PHP
ThinkPHP表单令牌错误的相关解决方法分析
2016/05/20 PHP
PHP 记录访客的浏览信息方法
2018/01/29 PHP
NiftyCube——轻松实现圆角边框
2007/02/20 Javascript
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
jQuery实现购物车数字加减效果
2015/03/14 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
浅谈webpack组织模块的原理
2018/03/10 Javascript
微信小程序时间戳转日期的详解
2019/04/30 Javascript
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
Python利用BeautifulSoup解析Html的方法示例
2017/07/30 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
完美解决python针对hdfs上传和下载的问题
2020/06/05 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
美国知名的女性服饰品牌:LOFT(洛芙特)
2016/08/05 全球购物
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
英国领先的豪华时尚家居网上商店:Amara
2019/08/12 全球购物
西班牙购买行李箱和背包网站:Maletas Greenwich
2019/10/08 全球购物
迪卡侬印尼体育用品商店:Decathlon印尼
2020/03/11 全球购物
北京某公司的.net笔试题
2014/03/20 面试题
运动会稿件300字
2014/02/14 职场文书
三八红旗集体先进事迹材料
2014/05/22 职场文书
教师自我剖析材料范文
2014/09/30 职场文书
2016高考寄语或鼓励的话语
2015/12/04 职场文书
导游词之天津盘山
2019/11/01 职场文书
六年级作文之家庭作文
2019/12/12 职场文书
Python移位密码、仿射变换解密实例代码
2021/06/27 Python
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
2022/03/16 Redis
Python装饰器详细介绍
2022/03/25 Python