1.下载iscroll
下载地址:iscroll-probe.js
2.封装组件
在vue里面使用iscroll需要封装一个iscroll滚动组价
-
创建ScollView.vue 目录结构如下图: -
导入iscroll -
<template> 结构采用iscroll官网推荐的的三层解构
<template>
<!-- ref用以获取wrapper的dom元素 -->
<div id="wrapper" ref='wrapper'>
<!-- 由于内部的内容不确定,所以放一个插槽在这,谁要使用iscroll再添加进来 -->
<slot></slot>
</div>
</template>
4.由于生命周期方法mounted是可以最快拿到页面渲染的元素的方法,所以在 ScrollView组件的mounted()里面进行注册
mounted(){
this.iscroll = new IScroll(this.$refs.wrapper,{
mouseWheel: true,
scrollbars: true,
scrollX: false,
scrollY: true,
disablePointer: true,
disableTouch: false,
disableMouse: true
})
var observer = new MutationObserver((mutationList, observer)=>{
this.iscroll.refresh()
})
const config = {
childList: true,
subtree: true,
attributeFilter: ['height', 'offsetHeight']
}
observer.observe(this.$refs.wrapper, config)
}
- 回到需要使用iscroll的界面,我这里是recommend.vue
-
导入ScrollView组件 -
注册ScrollView组件 -
使用ScrollView组件
3.关掉系统默认滚动设置,防止和iscroll冲突
4.iscroll配置
由于iscroll可滚动的条件是:需要滚动的区域高度<页面内容高度 所以我们需要设置ScrollView组件的父元素recommend.vue的位置固定,并设置ScrollView组件的height为100%
ok,可以滚动啦!
|