用JS有效解决移动w用JS有效解决移动web浏览器中HTML元素的overflow:sceb浏览器中HTML元素的overflow:scroll滚动属性失效问题

iscroll4webhtml5mobilejavascript

web移动平台前端UI开发工作,兼容问题超多,今儿又遇到一个。产品方要求在某固定尺寸容器内显示内容,但内容条数未知;如果条数过多,容器显示滚动条。这鸟需求按说是So easy,容器设死宽、高,CSS加属性overflow:scroll;完事!可拿设备去测的时候有趣了,Pc all browser正常,ios正常 ,android失效。泥马在android下效果与 overflow:hidden;一样,溢出部分隐藏了!
水平有限,用尽吃奶力各种解决未果,Google搜索有人说是android系统BUG,最后查到比较靠谱的解决是国外某高手开发了个JS库,名曰iScroll 4 。 亲测,好用,唯独效率不敢恭维(拿别人的东西用,少TM废话)。
下载地址:http://cubiq.org/iscroll-4
使用方法:
1. 引入 iscroll.js 


2. 添加必要的样式


3. 容器加 id="wrapper" , 内容加 id="scroller" 


               

                       

  •                      ...
                       

  •                



4. 有图有真相


 

 

iScroll框架解析(翻译)

概要

iScroll 4 这个版本完全重写了iScroll这个框架的原始代码。这个项目的产生完全是因为移动版webkit浏览器(诸如iPhone,iPad,Android这些系统上广泛使用)提供了一种本地化的方式来对一个限定了高度和宽度的元素的内容进行滑动。很不幸的是,这种情况下所有的web应用的页面就不能够包含具有position:absolute的头、页尾或者是一个内容可滚动的中间区域。

然而,Android系统最新修订版已经可以支持这种功能了(尽管支持的力度还不是特别好),Apple公司似乎不太情愿将one-finger滑动事件运用到div元素上。

除了以前版本的iScroll的特性以外,iScroll 4还包括如下的特性:

     (1)缩放(Pinch/Zoom)

    (2)拉动刷新(Pull up/down to refresh)

    (3)速度和性能提升

    (4)精确捕捉元素

    (5)自定义滚动条

      友情提示:iScroll 4并不是iScroll 3的简易替代版本,API文档已经不一样了。同时考虑到此版本正处于测试期,一些API 可能会有细微的变化。

使用指南

在此文档中你会发现很多例子来教会你如何快速上手iScroll脚本库。参看文中的demo小例子并仔细阅读此文档,可能有点小无聊,但是这篇文章中却是iScroll这个脚本库的精髓之所在哦。

iScroll需要对所要进行滚动的元素进行初始化,并且不限定一个页面中使用iScroll的元素的个数(这里不考虑您的硬件配置)。滚动元素中内容的类型和长度在一定程度上将会影响iScroll脚本库里可以同时使用的元素的个数。使用iScroll这个脚本库时,DOM树的结构要足够简单,移除不必要的标签,尽量避免过多的标签嵌套使用。最优的使用iScroll的结构如下所示:

        

                   

  •                .....

            

在这个小例子中,ul标签将会被滚动。iScroll一定要与滚动内容外面的wrapper进行联系才会产生效果。

【注意事项】:

只有wrapper里的第一个子元素才可以滚动,如果你想要更多的元素可以滚动,那么你可以试试下面的这种写法:

        

               

                        

  •                      ...

                    

                

                             

  •                           ...