欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Vue Transition实现类原生组件跳转过渡动画的示例

程序员文章站 2022-05-14 19:14:02
最近学习了vue transition的用法,感觉这个地方知识点挺多的,而且很重要,所以,今天添加一点小笔记 官方文档: 演示地址: (请在移动端查看,pc端查...

最近学习了vue transition的用法,感觉这个地方知识点挺多的,而且很重要,所以,今天添加一点小笔记

官方文档:

演示地址: (请在移动端查看,pc端查看请打开移动端调试模式)

前言

看了挺多vue的ui框架都不带过渡动画,今天心血来潮,就把自己平时用的动效抽离出来。可直接通过脚手架init模版配合其他ui框架使用,不需要另外进行配置。

原理

模版中使用了vue提供的封装组件 transition,配合css类名在 enter/leave 的六种不同的状态过渡中切换。

Vue Transition实现类原生组件跳转过渡动画的示例

对于这些在 enter/leave 过渡中切换的类名,v- 是这些类名的前缀。使用 <transition name="my-transition"> 可以重置前缀,比如 v-enter 替换为 my-transition-enter

重写跳转函数

// 根据具体的跳转类型更改跳转属性值,执行不同的动画
const nextdirection = (direction) => {
 let el = document.getelementbyid('app')
 if (el) el.setattribute('transition-direction', direction)
}

router['_push'] = router['push']

// 重写路由跳转方法,设置跳转类型后跳转
router.forward = router['push'] = (target) => {
 nextdirection('forward')
 settimeout(() => { router['_push'](target) })
}

// 重写路由返回方法,设置跳转类型后跳转到上一页
router.back = (target) => {
 nextdirection('back')
 if (target) {
 settimeout(() => { router['_push'](target) })
 }
 history.go(-1)
}

how to use

# init template
vue init coderlqchou/v-transition-template my-transition-app

# cd project
cd my-transition-app

# install dependencies
npm install

# serve with hot reload at localhost:8080
npm run dev

# build for production with minification
npm run build

仓库地址:https://github.com/coderlqchou/vue-transition-template

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