1.安裝(官方文檔上有,不多言了)
NPM
better-scroll 托管在 Npm 上,執行如下命令安裝:
npm install better-scroll --save
接下來就可以在代碼中引入了,webpack 等構建工具都支持從 node_modules 里引入代碼:
import BScroll from 'better-scroll'
如果是 ES5 的語法,如下:
var BScroll = require('better-scroll')
script 加載
better-scroll 也支持直接用 script 加載的方式,加載后會在 window 上掛載一個 BScroll 的對象。
你可以直接用:https://unpkg.com/better-scroll@1.0.1/dist/bscroll.min.js 這個地址。也可以把 dist 目錄下的文件拷貝出去發布到自己的 cdn 服務器。
2.Scroll的封裝(每個頁面都導入使用太過於麻煩,耦合太高,因此我做了封裝)
1 <template> 2 <div class="wrapper" ref="wrapper"> 3 <div class="content"> 4 <slot></slot> 5 </div> 6 </div> 7 </template> 8 9 <script> 10 import BScroll from 'better-scroll' 11 12 export default { 13 name: "Scroll", 14 props: { 15 probeType: { 16 type: Number, 17 default: 0 18 }, 19 pullUpLoad: { 20 type: Boolean, 21 default: false 22 } 23 }, 24 data() { 25 return { 26 scroll: null, 27 message: '哈哈哈' 28 } 29 }, 30 mounted() { 31 // 1.創建BScroll對象 32 this.scroll = new BScroll(this.$refs.wrapper, { 33 click: true, 34 probeType: this.probeType, 35 pullUpLoad: this.pullUpLoad 36 }) 37 38 // 2.監聽滾動的位置 39 this.scroll.on('scroll', (position) => { 40 // console.log(position); 41 this.$emit('scroll', position) 42 }) 43 44 // 3.監聽上拉事件 45 this.scroll.on('pullingUp', () => { 46 this.$emit('pullingUp') 47 }) 48 }, 49 methods: { 50 scrollTo(x, y, time = 300) { 51 this.scroll.scrollTo(x, y, time) 52 }, 53 finishPullUp() { 54 this.scroll.finishPullUp() 55 } 56 } 57 } 58 </script> 59 60 <style scoped> 61 62 </style>
3.使用 (將想要滾動的內容放在 <Scroll-box></Scroll-box>中即可)
<template>
<scroll-box class="content">
<div></div>
</scroll-box>
</div>
</template>
<script>
import Scroll from '../../subcomponents/Scroll'
export default {
data() {
return {
}
},
components: {
'scroll-box': Scroll
},
created() {
},
methods: {
}
</script>
<style lang="scss" scoped>
.content {
height: 350px;
}
</style>
4.其他
其他問題,就是如何調整最合適的滾動區域,以及監聽滾動的位置了,在官方文檔上查看即可
