前端小白一个,最近做的一个Vue项目用到了Vue的过度动画,本来效果挺好的突然发现在IOS手机上项目本身使用的Vue过度动画与IOS侧滑发生冲突,出现了侧滑效果与Vue过度动画重复执行导致页面切换效果不理想。

思路:
两个动画效果肯定是要停掉一个的,禁止掉原生侧滑有点不现实,那就想办法改变我们自己的。

定义变量isIosMoveBack判断过度动画取消的时机(在IOS系统机型下滑动时),这里直接在vuex里面定义个变量,方便后面组件内部的返回按钮重置变量

store > state

 isIosMoveBack: false

store > mutations

 setIsIosMoveBack (state, param) {state.isIosMoveBack = param}

app.vue页面

computed: {isIosMoveBack() {return this.$store.state.isIosMoveBack}}

监听滑动事件改变变量isIosMoveBack

mounted() {// getDeviceType函数为判断机型(IOS时返回true)if (this.getDeviceType()){document.body.addEventListener('touchmove', () => {this.$store.commit('setIsIosMoveBack', true)}, false)}
}

Vue路由过渡动画的监听判断

watch: {$route(to, from) {if (this.isIosMoveBack) {this.transitionName = ''this.$store.commit('setIsIosMoveBack', false)} else {if(to.meta.index > from.meta.index){this.transitionName = 'slide-left'}else if(to.meta.index < from.meta.index){this.transitionName = 'slide-right'}else{this.transitionName = ''}}}},

到此,还没结束--------还有个问题(项目自身返回按钮需要重置变量),前面只是监听了touchmove,那任何在路由跳转前的滑动效果都会被监听,也就是说任何返回操作前this.isIosMoveBack都可能为true(除了侧滑,其他的返回操作仍然是需要Vue过渡动画)

组件header.vue

如上图:需要在点击返回时重置isIosMoveBack值,在组件中重置store中的变量this.$store.commit('setIsIosMoveBack', false)

back () {this.$store.commit('setIsIosMoveBack', false) // 重置变量isIosMoveBackif (this.backRouter) {this.$router.push(this.backRouter)} else if (this.isBackHandle) {this.$emit('backHandle')} else {this.$router.go(-1)}
},

结束! 基本上解决了ios与Vue过渡动画的冲突问题,感觉方法还是不太好,各路大神有咩有好方法呀让小弟我借鉴借鉴

IOS手机侧滑返回与Vue过渡动画冲突相关推荐

  1. [vue] vue过渡动画实现的方式有哪些?

    [vue] vue过渡动画实现的方式有哪些? 1.使用vue的transition标签结合css样式完成动画 2.利用animate.css结合transition实现动画 3.利用 vue中的钩子函 ...

  2. 禁止手机侧滑返回上一个页面的三种方法

    禁止手机侧滑返回上一个页面的三种方法 侧滑返回上一个页面用户体验很很好.但是在特别的场景侧滑返回上一个页面严重影响用户体验: 1.如正在斗地主,结果在出牌时,由于出最左边的牌时,不小心触发了侧滑离开斗 ...

  3. Vue过渡 动画---vue工作笔记0014

    然后我们来看vue中的过渡,以及动画效果. 上面这个toggle1,是可以实现点一下,慢慢的显示隐藏 第二个是,点一下,然后先放大,然后再缩小. vue实现动画效果的原理,实际上就是 1.可以看到就是 ...

  4. 11,你听说过vue过渡动画了嘛?没有吧? 众里寻他千百度,百度不一定全面?

    2020[前端VUE框架]最新最全实战课程,VUE56节分享,免费拿不谢! vue过度动画的使用方法整理 vue.js css 脸书 发布于 2020-11-19 transition props n ...

  5. uni.openLocation起始点定位,IOS手机无法返回等问题

    uni.openLocation使用问题 环境:uni-app开发H5项目,H5项目链接webview嵌入app中 目的:打开目标的地图位置并进行导航,导航完成后退出回到原界面 问题: 仅能传入目标地 ...

  6. vue过渡动画Animate.css动画库(1)

    一.前言: 在开发中,我们想要给一个组件的显示和消失添加某种过渡动画,可以很好的增加用户体验, Vue中为我们可以自定义过渡或动画或者Vue提供一些内置组件完成动画,利用它们我们可以方便的实现过渡动画 ...

  7. iOS仿微信相册界面翻转过渡动画

    点开微信相册的时候,想要在相册图片界面跳转查看点赞和评论时,微信会采用界面翻转的过渡动画来跳转到评论界面,好像是在图片界面的背面一样,点击完成又会翻转回到图片界面,这不同于一般的导航界面滑动动画,觉得 ...

  8. iOS 禁用侧滑返回手势要点整理

    项目中可能某些页面返回按钮需要自定义,然后在点击返回按钮时做出某些判断,或者直接弹出到根控制器,这时候需要禁用侧滑返回手势,防止它不走判断的代码直接返回上个界面. 网上找了些资料,大致方法有两种,但要 ...

  9. [搬运] iOS 7 侧滑返回手势使用和错误集

    原文:http://blog.sina.com.cn/s/blog_65c178a80102v0f4.html 前言: ios7开始 苹果增加了页面 右滑返回的效果:具体的是以UINavigation ...

最新文章

  1. 在Leangoo里怎么修改昵称,简称,头像?
  2. jQuery DOM
  3. 汇编语言--8086CPU
  4. 大批机器人上岗,会影响工作吗,为何我们必须发展人工智能?
  5. 安装两个硬盘时应如何跳线?
  6. hdu5387(模拟)
  7. 你是否真正理解了泛型、通配符、类型擦除
  8. vue ui 启动,浏览器报错Unexpected token
  9. 关于二维数组取地址加以或减一解引用问题
  10. 5句话搞定ES5作用域
  11. EFGrid ---- copy 属性
  12. 孙鑫VC学习笔记:第十讲画图 创建设置画笔的对话框 并且可以预览效果
  13. zbrush史上最全笔刷下载43G(1200个)
  14. 网络安全工程师面试题汇总
  15. Python3 爬虫快速入门攻略
  16. 杨子江gre填空词汇分类整理
  17. 重温《遥远的救世主》
  18. Android Studio 按钮样式实现
  19. VB编程:UBound获取数组上限;LBound获取数组下限-25
  20. 微信吸粉实战二:腾讯新闻

热门文章

  1. python画图零基础入门教程_Python画图学习入门教程
  2. handbrake 下载是php,Handbrake 优秀开源视频转换软件
  3. ThinkPad X1 Carbon安装win7.
  4. Unity 3D 物理引擎简介 || Unity 3D 物理材质|| Unity 3D 力(AddForce)
  5. 直播如何帮助企业做好品牌?
  6. 5.15 系统预设渐变库的使用 [Illustrator CC教程]
  7. Python 名片管理系统(文件版,可存档读档)
  8. python的argv是什么意思_Python argv用法详解
  9. 墨魂服务器维修,#墨魂[超话]# #墨魂一周年# 【... - @墨魂独立工作室 的微博精选 - 微博国际站...
  10. 使用video标签,连续播放无限个mp4(h264封装的)视频时,画面会闪烁的问题解决