1.1.1 • Published 4 years ago

tiny-scroll-listener v1.1.1

Weekly downloads
9
License
ISC
Repository
github
Last release
4 years ago

tiny-scroll-listener

一个监听滚动的小工具


安装

npm install tiny-scroll-listener

使用方法

import TinyScrollListener from 'tiny-scroll-listener'

const delay = (time) => new Promise((resolve) => setTimeout(resolve, time))

const scrollListener = new TinyScrollListener({
  // 滚动容器,需设置 overflow: scroll/auto;
  element: document.getElementById('scrollContainer'),

  // 触底函数相关
  distanceToReachEnd: 100, // 触底函数触发距离,默认为 100px
  async onEndReached(done) {
    console.log('到达了底部,锁定,两秒后释放')

    /**
     * 每次触发 onEndReached 函数后会自动阻止下一次触发,需要执行 done 函数来释放阻止
     * (例如滚动到底部后开始做网络请求时,再次滚动到底部不会触发二次请求)
     * 如果 isOver 为 true 则不会再触发后续的 onEndReached
     * (例如已经加载了全部页,不需要再监听触底事件)
     */
    await delay(2000)

    const isOver = false
    done(isOver)

    console.log('释放阻止')
  },

  /**
   * 任意滚动位置函数相关,常见场景为滚动到某距离时出现“回到顶部”按钮
   * onGoingIn、onGoingOut 只在值变迁瞬间执行一次,不会执行多次
   * 可设置多组监听
   */
  distanceEvents: [
    {
      distance: 300,
      onGoingIn() {
        console.log('滚动距离低于了 300px')
      },
      onGoingOut() {
        console.log('滚动距离高于了 300px')
      },
    },
  ],

  /**
   * 滚动的监听方向,vertical 为纵向,horizontal 为横向
   */
  direstion: 'vertical',
})

// 手动解除监听
scrollListener.destroy()
1.1.1

4 years ago

1.1.0

4 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.1

5 years ago