ios浏览器右划是返回上一页,左划必须要在右划后才可以出现,是返回前一页。
本人的项目在返回上一页面时会重新调用接口并重新渲染整个页面,这导致在滑动切换的过程中,浏览器的页面快照与实际页面内容不一致,导致产生页面闪烁的情况。
我使用的解决方案是隐藏浏览器快照,让所有页面有一个统一的交互效果并避免页面闪烁的情况。
我在中文互联网内百般搜索无果,最后在外网找到了关键信息,这里贴上链接,表示对前人的尊敬和感谢
stackoverflow.com/questions/6…
大佬通过翻阅webkit源码找到了控制safari页面快照的方法
window.history.scrollRestoration = 'manual'
这样滑动时显示的就不是页面快照,而是网页的统一背景色
但是在滑动结束时还是会右一次极短的闪烁情况,我的处理方式是在路由守卫内设置了页面切换时根节点透明,跳页完毕后延迟显示,
document.getElementById('app').style.opacity = '0'//设为透明
next()//跳页
setTimeout(() => {
document.getElementById('app').style.opacity = '1'//设为显示
}, 500);
return
希望能对后来者有用