我在做的一个项目,是关于js移动端的微信页面,需要用到滚动,页面上的tab栏可切换两个页面,一个是聊天页,一个是详情页,当初接手这个项目过来,聊天页滚动用的是原生的overflow:auto,没有很美观,但是android和ios兼容都没问题。后来要在详情页加一个内容,页面可上下滑动查看详情,为了美观,就找了iscroll。根据它的demo来做小改动,紧接着问题来了,详情页面上可以自由滑动,但是聊天页面就不行了,原来是因为iscroll阻止了document中的touchmove事件,代码如下。
解决方案很简单,把这段代码注释掉即可,不得不说,在ios上使用iscroll效果很不错。
解决之后继续测试,发现一个很严重的问题,ios运行很流畅,没有不适,而android上,当我把tab切换到聊天页,只要一在input里输入内容并发送出去,再回去详情页,页面就卡住,不能滑动。这不是一个小bug,为了解决,也有尝试替换掉iscroll,采用bootstrap里的滚动监听插件,skroll-master插件,然而都不如iscroll美观又好用,加上赶着做项目,没太多时间研究,于是就想取巧参考之前的聊天页做法,使用原生的overflow:auto,这个办法确实可行,然后缺点也很明显,android是没问题,滑动很顺畅,而ios却是很卡,一点也不好用,强迫症让我觉得没法接受,就继续探索。后来终于写出来了,采用了下面这个方法。进入到页面后,做个判断是android还是ios,再分开处理,android就给它加个overflow:auto,ios就按照iscroll效果来,做出来效果还是不错的