当前位置: 首页 > 编程笔记 >

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

祝英博
2023-03-14
本文向大家介绍VUE单页面切换动画代码(全网最好的切换效果),包括了VUE单页面切换动画代码(全网最好的切换效果)的使用技巧和注意事项,需要的朋友参考一下

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

// 视图切换动画逻辑
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单页面切换动画代码(全网最好的切换效果)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • Vue 提供了多种方式支持动画过渡效果。例如在各个过渡阶段应用 CSS 类,提供钩子函数使用 JS 操作 DOM,使用第三方 CSS/JS 动画库等。 如果对 Vue 中内置的 transition 机制还不了解,可以阅读 官方的介绍。 在模板项目中,主要使用了最简单的应用 CSS 类的方式完成动画效果。 具体实现 在模板项目中,页面切换时,会有左右滑动效果。 具体表现为打开新页面时左滑展示,返回

  • 表页与里页 KAG 的每一层又可以分成两部分,表页 fore 、里页 back 。 所有表页的内容组成了画面上显示的东西,而里页的内容,画面上是看不到的。 里页主要是在使用[trans](画面切换效果)之前,用于预载想要显示的内容的。(转自KAG官方文档汉化版) 如果将吉里吉里/KAG的所有层理解成一叠卡片的话,表页就是卡片当前朝向屏幕的一面。 那么,切换就是把所有的卡片翻面,让表页和里页互换。

  •  渐入和渐出,百叶窗之类,需要时间的画面转换的效果称呼为过渡(切换 transition)。  吉里吉里/KAG中,能使用的切换效果有渐入渐出(crossfade)、规则画像切换(universal)、画面卷动过渡(scroll)等3种。  此外,使用扩张的切换效果插件 ( extrans.dll ) ,可以增加数种切换效果 ( 参考吉里吉里 SDK 帮助的「关于过渡」 )。 crossing f

  • 本文向大家介绍Vue 页面切换效果之 BubbleTransition(推荐),包括了Vue 页面切换效果之 BubbleTransition(推荐)的使用技巧和注意事项,需要的朋友参考一下   CodePen 地址 前端使用 SPA 之后,能获得更多的控制权,比如页面切换动画,使用后端页面我们可能做不了上面的效果,或者做出来会出现明显的闪屏。因为所有资源都需要重新加载。 今天使用 vue,vue

  • 本文向大家介绍Android实现页面滑动切换动画,包括了Android实现页面滑动切换动画的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android实现页面滑动切换动画的具体代码,供大家参考,具体内容如下 实现两个页面滑动切换,一些相册的效果也是如此 一个Activity的界面配置文件 activity_main.xml: MainActivity.java: 在res/anim

  • 本文向大家介绍Vue Spa切换页面时更改标题的实例代码,包括了Vue Spa切换页面时更改标题的实例代码的使用技巧和注意事项,需要的朋友参考一下 在Vue组件化开发过程中,因为是单页面开发,但是有时候需要页面的title根据情况改变,于是上网查了一下,各种说法花(wo)里(kan)胡(bu)哨(dong), 于是想到一个黑科技 documet.title="xxx"; 随便创建一个项目,在独立的