vue-edge-check
检查浏览器的边缘是否被触碰。
防止边缘滑动时,vue-router
中transition的效果重复触发✨
Before
After
为啥
iOS的Safari/WKWebview/微信中,可以边缘滑动到上一个和下一个页面。
在滑动完毕后,页面才会触发history.back()/history.forward()
。
然后router的transition动画还会再次触发,效果就多余了。
因此我们可以检测返回/前进的时候是否触碰到边缘,从而忽略本次效果✨
安装
npm install vue-edge-check
或
yarn add vue-edge-check
使用
引入后,有两个属性 $isEdgeLeft
和 $isEdgeRight
,
代表页面左侧以及页面右侧。
可以用在组件中定义需要的class
引入组件
Vue
定义class
<template> <transition name="slide"> <div class="test" :class="{'is-edge-back':$isEdgeLeft,'is-edge-forward':$isEdgeRight}"> <h1> TEST </h1> </div> </transition></template>
定义/屏蔽transition效果
// // /// //// ////
选项
edge_width: 默认值: 48
边缘检测的宽度
edge_duration: 默认值: 500
页面边缘属性 $isEdgeLeft/$isEdgeRight
的持续时间,需要略大于效果的时间
// in case if you have a longer transition effectVue