wenju
wenju
  • 发布:2016-01-25 15:54
  • 更新:2016-01-25 15:54
  • 阅读:14779

【交流分享】解决IOS列表滑动不流畅的问题

分类:MUI

很简单的列表:

<body>  
        <div class="list">  
            <h1>图片</h1>  
            <img sr c="xxx.jpg" />  

            ...这里是20个<h1><img>...  

            <h1>图片</h1>  
            <img sr c="xxx.jpg" />  
        </div>  
    </body>

上述很简单的图文列表运行在IOS上列表滑动起来总是不流畅,但是在Android运行就很快;就算把img删掉,只剩h1文字列表,在IOS上滑起来都有点卡顿,手指只要离开屏幕,列表就停了,没有继续惯性滚动一段距离;

分享一下我的解决办法:

方法一: 使用原生div的滚动
如果像上面代码一样,不使用mui框架,则加入以下css:

body,  
            html {  
                height: 100%;  
                -webkit-overflow-scrolling: touch;//允许独立的滚动区域和触摸回弹  
            }  
            .list{  
                height: 100%;  
                overflow-y: scroll;//使用原生div滚动  
            }

如果使用mui框架,则
引入mui.css, 把上面<div class="list">变成 <div class="mui-content">; 加入以下css:

body,  
            html {  
                height: 100%;  
            }  
            .mui-content{  
                height: 100%;  
                overflow-y: scroll;  
            }

方法二: 使用mui的区域滚动
参考:http://dev.dcloud.net.cn/mui/ui/#scroll
但是这种方式,体验不如上面css的; 按照我们公司IOS同事的话来讲:你会感觉滑动飞得太假;当然也能解决问题;

最后附上源码案例, 很简单, 导入到HBuilder就可以在IOS上运行了

2 关注 分享
ztingjian 语嫣

要回复文章请先登录注册

xbx

xbx

回复 4***@qq.com :
用iscroll能解决大部分的问题。但是还是会有兼容的问题存在。注意一下父窗口包含iframe时是不是有margin的样式存在,同时注意:.smoothscorll{ -webkit-overflow-scrolling:touch; overflow-y:auto !important; overflow-x:hidden !important;} 这个可能会有不同的效果。
2017-02-20 21:41
4***@qq.com

4***@qq.com

回复 xbx :
我现在就是嵌入一个iframe。当焦点在iframe上的时候就无法滚动了。得怎么处理解决哇?
2016-07-28 11:13
xbx

xbx

我想说的是,“方法一: 使用原生div的滚动”中的方式,在IOS中,如果你是在多层iframe中使用的话,你就知道,子层是滚动不了的。还需要别的特别的方式才能滚动。而且不同的IOS(8,9,IP5,IP5s,IP6)版本都有不同的表现,这才是让你发疯的地方。垃圾IOS!
2016-06-16 11:52