基于iScroll 的开发(不断补充)
2012-07-24 21:53
169 查看
iScroll是一个JS插件,支持鼠标和触摸的滑动、滚动操作,可用于实现列表(横、纵、矩阵)、图片幻灯式播放等效果。
本文结合实例,解析iScroll的使用方法以及注意事项。
说明:本文使用的版本是iScroll4http://cubiq.org/iscroll-4(更新的版本见https://github.com/cubiq/iscroll)
<divclass="wrapper">
<divclass="scroller">
<ul>
<li></li>
......
<li></li>
</ul>
</div>
</div>
最外层是wrapper,用于实例化iScroll的div。
wrapper里面是一个scroller,scroller的宽高与wrapper的宽高共同决定着列表有多少行多少列。例如:
.wrapper{
width:100px;
height:100px;
}
.scroller{
width:300px;
height:200px;
}
则列表会有2行,3列,横向可以滚3屏,纵向可以滚2屏。
从上图中可以看出,wrapper之于scroller,就像viewport之于document.
wrapper的宽高好说,你想让它多大就设置多大。
对于scroller,当元素个数不确定的时候,宽高是要计算出来。
动态计算scroller宽高
为演示如何动态计算宽高,我写了一个JQueryUIWidget,并且配了一个demo。(代码下载:http://files.cnblogs.com/dc10101/diorama.zip)
这个widget做的事情就是绘制一个横向滑动或纵向滑动的iscroll,插件使用者只需指定wrapper(也就是可见区域)的宽高,scroller的宽高会自动计算出来。
由于iscroll本身是用float:left来排列元素,因此在绘制横向滑动的iscroll时要调换一下各元素的位置,这些算法在插件的代码中都有体现。
以下截图展示了横向纵向两种iscroll的样子,以及向尾部添加元素后的状态。
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
本文结合实例,解析iScroll的使用方法以及注意事项。
说明:本文使用的版本是iScroll4
基本概念
使用iscroll一般需要构造如下结构:<divclass="wrapper">
<divclass="scroller">
<ul>
<li></li>
......
<li></li>
</ul>
</div>
</div>
最外层是wrapper,用于实例化iScroll的div。
wrapper里面是一个scroller,scroller的宽高与wrapper的宽高共同决定着列表有多少行多少列。例如:
.wrapper{
width:100px;
height:100px;
}
.scroller{
width:300px;
height:200px;
}
则列表会有2行,3列,横向可以滚3屏,纵向可以滚2屏。
从上图中可以看出,wrapper之于scroller,就像viewport之于document.
wrapper的宽高好说,你想让它多大就设置多大。
对于scroller,当元素个数不确定的时候,宽高是要计算出来。
动态计算scroller宽高
为演示如何动态计算宽高,我写了一个JQueryUIWidget,并且配了一个demo。(代码下载:
这个widget做的事情就是绘制一个横向滑动或纵向滑动的iscroll,插件使用者只需指定wrapper(也就是可见区域)的宽高,scroller的宽高会自动计算出来。
由于iscroll本身是用float:left来排列元素,因此在绘制横向滑动的iscroll时要调换一下各元素的位置,这些算法在插件的代码中都有体现。
以下截图展示了横向纵向两种iscroll的样子,以及向尾部添加元素后的状态。
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
相关文章推荐
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台(C#开发)ArcGIS相关知识补充学习
- Ubuntu安装及Ubuntu下常用软件安装(不断补充)及Windows相关--软件开发用途
- SuperMap iClient for Silverlight开发笔记(不断补充中)
- 基于微软IIS/.NET平台开发的知名网站 (补充)
- 程序猿/媛必备的开发学习资源汇总(不断添加中,也欢迎大家补充...)
- 基于VB6开发的业务建模平台重构(不断更新中)
- 如何衡量前端开发人员技能的重要指标,会不断补充的。
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台(C#开发)补充说明
- web开发中的小细节(不断补充)
- iphone开发中常遇到的错误及解决方法(不断补充中⋯⋯)
- 基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 关于AgileEAS.NET的一些补充说明
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台(C#开发)补充说明
- iphone开发中常遇到的错误及解决方法(不断补充中⋯⋯)
- 游戏开发网站收藏 (不断更新,求补充)
- flex开发陷阱(不断补充)
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台(C#开发)补充说明
- 精简易理解的ios开发要点(一句话的要点,不断总结补充!!)
- Android 开发常识(不断更新中,欢迎补充)
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台(C#开发)ArcGIS相关知识补充学习
- 使用webwork开发项目的几点经验(不断补充)