一 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, //初始化时滚动至x
startY: 0, //初始化时滚动至y
indicators: 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>
参考文章: