惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
H
Help Net Security
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The GitHub Blog
The GitHub Blog
V
V2EX
M
MIT News - Artificial intelligence
Vercel News
Vercel News
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
阮一峰的网络日志
阮一峰的网络日志
B
Blog RSS Feed
D
Docker
V
Visual Studio Blog
博客园 - 叶小钗
美团技术团队
S
SegmentFault 最新的问题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

博客园 - MainTao

WebStorm 自定义字体+颜色+语法高亮+导入导出用户设置 WebStorm安装Vim以及快捷键设置 scroll clock–jQuery widget implement C#操作Win7/Win8的库、收藏夹 P/Invoke Interop 实例 WP7图片从独立存储绑定 编写jQueryUI插件(widget) 调试Javascript Windows Phone 7监测网络环境变化 Blend制作动画 用OpacityMask快速制作theme friendly UI 用gradient brush和OpacityMask实现fade edge效果 blend 画图 ControlTemplate & DataTemplate PhoneApplicationFrame以及设置Obscured/Unobscured的event handler Windows Phone 7 短信表情 WP7应用程序生命周期,以及各个event handler分别该做什么 第一个WP7程序 开发总结 XAML中的空格、换行、Tab
基于iScroll 的开发(不断补充)
MainTao · 2012-07-24 · via 博客园 - MainTao

iScroll是一个JS插件,支持鼠标和触摸的滑动、滚动操作,可用于实现列表(横、纵、矩阵)、图片幻灯式播放等效果。

本文结合实例,解析iScroll的使用方法以及注意事项。

说明:本文使用的版本是iScroll4 http://cubiq.org/iscroll-4  (更新的版本见 https://github.com/cubiq/iscroll)

基本概念

使用iscroll一般需要构造如下结构:

<div class="wrapper">
    <div class="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屏。

image

从上图中可以看出,wrapper之于scroller,就像viewport之于document.

wrapper的宽高好说,你想让它多大就设置多大。

对于scroller,当元素个数不确定的时候,宽高是要计算出来。

动态计算scroller宽高

为演示如何动态计算宽高,我写了一个JQueryUI Widget,并且配了一个demo。(代码下载:https://files.cnblogs.com/dc10101/diorama.zip

这个widget做的事情就是绘制一个横向滑动或纵向滑动的iscroll,插件使用者只需指定wrapper(也就是可见区域)的宽高,scroller的宽高会自动计算出来。

由于iscroll本身是用float:left来排列元素,因此在绘制横向滑动的iscroll时要调换一下各元素的位置,这些算法在插件的代码中都有体现。

以下截图展示了横向纵向两种iscroll的样子,以及向尾部添加元素后的状态。

image       image