其他分享
首页 > 其他分享> > 项目中better-scroll的常用配置、插件介绍

项目中better-scroll的常用配置、插件介绍

作者:互联网

文章目录

介绍

最常见的应用场景是列表滚动

<div class="wrapper">
  <ul class="content">
    <li>...</li>
    <li>...</li>
    ...
  </ul>
  <!-- 这里可以放一些其它的 DOM,但不会影响滚动 -->
</div>

滚动原理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h0BbCDFd-1613031372574)(/Users/mac/Desktop/前端学习笔记/vue/better-scroll的使用/1.png)]

安装

全部安装

我们可以通过以下方式安装具备所有插件能力的 BetterScroll:

npm install better-scroll --save

如果你觉得一个个引入插件很费事,我们提供了一个拥有全部插件能力的 BetterScroll 包。

它的使用方式与 1.0 版本一模一样,但是体积会相对大很多,推荐按需引入

按需安装(推荐)

import BScroll from '@better-scroll/core'
let bs = new BScroll('.wrapper', {
  // ...... 详见配置项
})
import BScroll from '@better-scroll/core'
import Pullup from '@better-scroll/pull-up'

// 注册插件
BScroll.use(Pullup)

let bs = new BScroll('.wrapper', {
  probeType: 3,
  pullUpLoad: true
})

插件

使用插件

通过全局方法 BScroll.use() 使用插件。它需要在你调用 new BScroll() 之前完成:

  import BScroll from '@better-scroll/core'
  import Plugin from 'somewhere'

  BScroll.use(Plugin)
  new BScroll('.wrapper', {
    pluginKey: {} // pluginKey 对应 Plugin 类上静态属性 pluginName 的值,否则插件无法实例化
  })

常用插件

pullUp

pullup 插件为 BetterScroll 扩展上拉加载的能力。

npm install @better-scroll/pull-up --save
  import BScroll from '@better-scroll/core'
  import Pullup from '@better-scroll/pull-up'

  BScroll.use(Pullup)
this.scroll = new BScroll('.bs-wrapper', {
    pullUpLoad: true
  })

当 threshold 为正数,代表距离滚动边界 threshold 像素的时候触发 pullingUp,反之,代表越过滚动边界才会触发事件

警告

监测到上拉刷新的动作之后,pullingUp 事件的消费机会只有一次,因此你需要调用 finishPullUp() 来告诉 BetterScroll 来提供下一次 pullingUp 事件的消费机会。

this.scroll.on('pullingUp', () => {
      ...
})

observe-dom

开启对 content 以及 content 子元素 DOM 改变的探测。当插件被使用后,当这些 DOM 元素发生变化时,将会触发 scroll 的 refresh 方法。 observe-dom 插件具有以下几个特性:

npm install @better-scroll/observe-dom --save
import BScroll from '@better-scroll/core'
import ObserveDOM from '@better-scroll/observe-dom'
BScroll.use(ObserveDOM)

new BScroll('.bs-wrapper', {
  //...
  observeDOM: true // 开启 observe-dom 插件
})

observe-image

一般情况下,我们请求图片数据还没有到达,可滚动尺寸却被确定了,此时可滚动尺寸小于实际的高度,需要刷新可滚动尺寸,就需要用到该插件。(有防抖功能)

npm install @better-scroll/observe-dom --save
import BScroll from '@better-scroll/core'
import ObserveDOM from '@better-scroll/observe-dom'
BScroll.use(ObserveDOM)

new BScroll('.bs-wrapper', {
  //...
  observeDOM: true // 开启 observe-dom 插件
})
const bs = new BScroll('.wrapper', {
  observeImage: true
})

// 相当于

const bs = new BScroll('.wrapper', {
  observeImage: {
    debounceTime: 100 // ms
  }
})

常用配置项

click

probeType

// 派发 scroll 的场景分为两种:
// 1. 手指作用在滚动区域(content DOM)上;
// 2. 调用 scrollTo 方法或者触发 momentum 滚动动画(其实底层还是调用 scrollTo 方法)

// 对于 v2.1.0 版本,对 probeType 做了一次统一

// 1. probeType 为 0,在任何时候都不派发 scroll 事件,
// 2. probeType 为 1,仅仅当手指按在滚动区域上,每隔 momentumLimitTime 毫秒派发一次 scroll 事件,
// 3. probeType 为 2,仅仅当手指按在滚动区域上,一直派发 scroll 事件,
// 4. probeType 为 3,任何时候都派发 scroll 事件,包括调用 scrollTo 或者触发 momentum 滚动动画

常用注意事项

在vue中使用建议用ref属性绑定scroll对象

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pR9nQ8kN-1613031372576)(/Users/mac/Desktop/前端学习笔记/vue/better-scroll的使用/2.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uCQESkGY-1613031372579)(/Users/mac/Desktop/前端学习笔记/vue/better-scroll的使用/3.jpg)]

标签:插件,滚动,BetterScroll,better,BScroll,scroll
来源: https://blog.csdn.net/weixin_46351593/article/details/113790753