轻量级滚动插件ScrollBooster

所属分类:UI,输入-滚动,拖和放

 29454  294  查看评论 (4)
分享到微信朋友圈
X
轻量级滚动插件ScrollBooster ie兼容9

发布时间:2018-3-30 1:49

ScrollBooster大小只有2kb

安装

您可以通过npm软件包管理器安装它,或者直接删除脚本标签:

npm i scrollbooster

引用js文件

<script src="https://unpkg.com/scrollbooster@1.0.4/dist/scrollbooster.min.js"></script>

用法

import ScrollBooster from 'scrollbooster'
let sb = new ScrollBooster({
  viewport: document.querySelector('.viewport') // required
  // ...other options
})

选项

OptionTypeDefaultDescription
viewportelementnull视区-外部元素
contentelementFirst child of viewport element视区内可滚动内容
handleelementViewport element响应拖动事件的元素
bouncebooleantrue惯性弹跳效果 (滚动过去视区边框)
textSelectionbooleanfalse能够选择文本内容
frictionfloat0.05滚动摩擦因数 (指针释放后的滚动惯性)
bounceForcefloat0.1弹跳效应因子
emulateScrollbooleanfalse模拟视区鼠标滚轮事件 (对于使用转换属性滚动的情况)
onUpdatefunctionnoop根据接收的坐标更新元素属性的用户函数 (请参见演示示例)。接收具有属性的对象: 位置、视区和内容。每个属性都包含用于执行实际滚动的度量值

方法

MethodDescription
setPosition在视区中设置新的滚动位置。接收具有属性 x 和 y 的对象         
updateMetrics更新元素大小。对图像加载或其他动态内容有用
getUpdate与onUpdate相同的格式返回当前指标和坐标         
destroy销毁所有实例的事件侦听器

完整示例

let viewport = document.querySelector('.viewport')
let content = document.querySelector('.viewport-content')

let sb = new ScrollBooster({
  viewport: viewport,
  content: content,
  handle: document.querySelector('.viewport-scroller'), 
  bounce: true,
  textSelection: false,
  emulateScroll: false,
  onUpdate: (data)=> {
    content.style.transform = `translate(
      ${-data.position.x}px,
      ${-data.position.y}px
    )`
    // and also metrics: data.viewport['width'|'height'] and data.cotent['width'|'height']
  }
})

// methods example:
sb.updateMetrics()
sb.setPosition({
  x: 100,
  y: 100
})
sb.destroy()
相关插件-滚动,拖和放

jquery无缝滚动

真正的无缝滚动
  滚动
 74236  524

jquery逐条文字向上滚动

jquery逐条文字向上滚动效果
  滚动
 49811  426

jQuery滚动堆叠插件jquery.stacked-strips.js

为您的一页滚动网站和单页应用程序创建堆叠滚动效果。当您向下滚动网页时,插件可以逐个滚动固定的页面部分。
  滚动
 27098  328

jQuery滚轮控制轮播图上下切换(原创)

jQuery滚轮控制轮播图上下切换,简单实用
  滚动
 38474  341

讨论这个项目(4)回答他人问题或分享插件使用方法奖励jQ币 评论用户自律公约

    鸭鸭 0
    2019/5/15 10:30:05
    `` 这是渲染模板数据用的? 回复
    萝卜 0
    2018/4/17 16:51:34
    是正确的,这是es6的新语法,这样写可以不用在用去+号拼接 回复
    半醒狐狸 0
    2018/4/2 9:09:29
    第12行的content.style.transform = `translate这个`是不是用错了?>_<
        萝卜1
        2018/4/17 16:53:10
        是正确的,这是es6的新语法,这样写可以不用在用去+号拼接
    回复
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
取消回复