一 scroll使用三原则
mui中封装了一个scroll控件用于实现区域滚动,在使用区域滚动组件时候需要注意几个细节:
1.scroll控件有固定的dom结构
2.需手动初始化scroll控件
3.需要手动设置滚动区域的位置(一般设置为top和bottom)
1 固定DOM结构
<div class="mui-scroll-wrapper"><div class="mui-scroll"><!--这里放置真实显示的DOM内容--></div></div>
2 初始化scroll滚动控件
// 常用配置项var options = {scrollY: true, //是否竖向滚动scrollX: false, //是否横向滚动startX: 0, //初始化时滚动至xstartY: 0, //初始化时滚动至yindicators: true, //是否显示滚动条deceleration:0.0006 //阻尼系数,系数越小滑动越灵敏bounce: true, //是否启用回弹}
示例:初始化scroll控件,设置滚动速度
mui('.mui-scroll-wrapper').scroll({deceleration: 0.0005//flick 减速系数,系数越大,滚动速度越慢,滚动距离越小,默认值0.0006});
3 手动设置滚动区域位置
区域滚动组件默认为absolute定位,全屏显示;在实际使用过程中,需要手动设置滚动区域的位置(top,bottom,left,right值和height),为了方便,mui默认设置有个全屏类 .mui-fullscreen ,我们可以在scroll控件外面添加这个类,然后手动修改top和bottom值。
.mui-fullscreen {position: absolute;top: 0;right: 0;bottom: 0;left: 0;}
二 scroll其他封装方法
mui中iOS平台的下拉刷新(Android平台的下拉刷新使用的是双webview+原生滚动方案)、popover、可拖动式选项卡均使用了scroll组件。 为方便大家使用,mui还额外为scroll插件封装了部分方法。
1 滚动到特定位置
| scrollTo( xpos , ypos [, duration] ) | |
|---|---|
| 参数 | 说明 |
| xpos | 要在窗口文档显示区左上角显示的(即针对显示窗口的左上角为原点)文档的 x 坐标 |
| ypos | 要在窗口文档显示区左上角显示的(即针对显示窗口的左上角为原点)文档的 y 坐标 |
| duration | 滚动时间周期,单位是毫秒 |
示例:快速回滚到该区域顶部,代码如下:
mui('.mui-scroll-wrapper').scroll().scrollTo(0,0,100);//100毫秒滚动到顶
2 滚动到底部位置
滚动到顶部的代码比较容易实现,坐标值设为0、0即可;但滚动到底部,需要计算该区域的实际高度,因此mui封装了scrollToBottom方法。
| scrollToBottom(duration) | |
|---|---|
| 参数 | 说明 |
| duration | 滚动时间周期,单位是毫秒 |
3 横向滚动
横向滚动只需在scroll组件基础上添加 mui-slider-indicatorcode mui-segmented-control mui-segmented-control-inverted 这三个class即可,(给子元素添加mui-control-item可加大文字间距增强体验)
示例如下:
<div class="mui-scroll-wrapper mui-slider-indicator mui-segmented-control mui-segmented-control-inverted"><div class="mui-scroll"><a class="mui-control-item mui-active">推荐</a><a class="mui-control-item">热点</a><a class="mui-control-item">北京</a><a class="mui-control-item">社会</a><a class="mui-control-item">娱乐</a><a class="mui-control-item">科技</a></div>
参考文章:
