vue怎么解决在ios上屏幕滚动的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue怎么解决在ios上屏幕滚动的问题相关的知识,希望对你有一定的参考价值。

参考技术A 不光是css3,gif动画也是,不信你打开一个gif 滚动的时候看它还动不动。ios最先响应屏幕反应。响应顺序依次为Touch——Media——Service——Core架构,当用户只要触摸接触了屏幕之后,系统就会最优先去处理屏幕显示也就是Touch这个层级,然后才是媒体(Media),服务(Service)以及Core架构。所以说,当系统接收到Touch事件之后会优先响应,此时会暂停屏幕上包括js、css的渲染。这个时候不光是css动画不动了,哪怕页面没有加载完如果你手指头还停留在屏幕上那么页面也不会继续加载,直到你的手松开。解决办法有两个,各有瑕疵:不要使用 scroll 事件(此事件会被暂停),而是采用 touchmove(此事件会在用户触屏滚动的时候不断触发)。瑕疵是,在结束触屏后惯性滚动的时间里,touchmove 无法被触发了(scroll 当然也不行);基于上一种方法,在所有的 touchmove 事件中,强行 preventDefault 阻止掉事件,然后根据 event.pageY 来手工设置所滑动元素的 scrollTop 值。当然,这样一来就没有了惯性滚动。你也可以在 touchend 之后,手工模拟惯性滚动,计算速度以及速度衰减,可以参考各种各样的滚动插件。

解决ios移动端,滑动回弹效果遮挡页面顶部和底部Fixed元素的问题

参考技术A

怎么说了呢,这个属性带来的好的结果是 在使用 overflow-y:scorll 后页面滑动不流畅,很木的效果。
-webkit-overflow-scrolling :属性控制元素在移动设备上是否使用滚动回弹效果.
auto : 使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止。
touch : 使用具有回弹效果的滚动, 当手指从触摸屏上移开,内容会继续保持一段时间的滚动效果。继续滚动的速度和持续的时间和滚动手势的强烈程度成正比。同时也会创建一个新的堆栈上下文。

在移动端上,在你用 overflow-y:scorll 属性的时候,你会发现滚动的效果很木,很慢,这时候可以使用 -webkit-overflow-scrolling:touch 这个属性,让滚动条产生 滚动回弹 的效果,就像ios原生的滚动条一样流畅。

原文链接

其中给每个滑动元素的下一个子元素设置 min-height:calc(100%+1px) 的方法可行,但是不是完全解决,当第一次加载到页面的时候滑动到底部还是会出现回弹遮挡问题,不刷新页面的情况下,然后第二次就可以了。

以上是关于vue怎么解决在ios上屏幕滚动的问题的主要内容,如果未能解决你的问题,请参考以下文章

解决ios移动端,滑动回弹效果遮挡页面顶部和底部Fixed元素的问题

vue解决ios弹层滚动,底部body跟着滚动问题

ios 11 移动端兼容性滚动问题

vue怎么加滚动的字幕

##. 解决ios屏幕滚动

##. 解决ios屏幕滚动