发布时间:2018-3-30 1:49
ScrollBooster大小只有2kb
您可以通过npm软件包管理器安装它,或者直接删除脚本标签:
1 | npm i scrollbooster |
引用js文件
1 |
用法
1 2 3 4 5 | import ScrollBooster from 'scrollbooster' let sb = new ScrollBooster({ viewport: document.querySelector( '.viewport' ) // required // ...other options }) |
选项
Option | Type | Default | Description |
---|---|---|---|
viewport | element | null | 视区-外部元素 |
content | element | First child of viewport element | 视区内可滚动内容 |
handle | element | Viewport element | 响应拖动事件的元素 |
bounce | boolean | true | 惯性弹跳效果 (滚动过去视区边框) |
textSelection | boolean | false | 能够选择文本内容 |
friction | float | 0.05 | 滚动摩擦因数 (指针释放后的滚动惯性) |
bounceForce | float | 0.1 | 弹跳效应因子 |
emulateScroll | boolean | false | 模拟视区鼠标滚轮事件 (对于使用转换属性滚动的情况) |
onUpdate | function | noop | 根据接收的坐标更新元素属性的用户函数 (请参见演示示例)。接收具有属性的对象: 位置、视区和内容。每个属性都包含用于执行实际滚动的度量值 |
方法
Method | Description |
---|---|
setPosition | 在视区中设置新的滚动位置。接收具有属性 x 和 y 的对象 |
updateMetrics | 更新元素大小。对图像加载或其他动态内容有用 |
getUpdate | 与onUpdate相同的格式返回当前指标和坐标 |
destroy | 销毁所有实例的事件侦听器 |
完整示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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() |
特别申明:
本站所有资源都是由网友投稿发布,或转载各大下载站,请自行检测软件的完整性!
本站所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!
如有侵权请联系我们删除下架,联系方式:lei1294551502@163.com