Vue better-scroll使用指南

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.其他

其他问题,就是如何调整最合适的滚动区域,以及监听滚动的位置了,在官方文档上查看即可

posted @ 2019-10-25 22:27  青癯  阅读(4543)  评论(0编辑  收藏  举报