使用:
import BScroll from 'better-scroll'
new BScroll('Swiper',{})
常用配置:
{
click: true, // 元素可触发点击事件
scrollX: false, // 横向可滑动,默认为false
scrollY: true, // 纵向可滑动,默认为true
bounce: false, // 当滚动超过边缘的时候无回弹动画
preventDefaultException: { // 设置局部某元素原生事件不被禁止(默认preventDefault为true)
className: 【正则表达式】
},
snap: { // 滑动切换的一些配置
speed: 800, // 滑动切换的速度
easing: { // 滑动切换的动画效果
style: 'ease-in'
},
threshold: 0.5, // 滑动切换到超过一半时切换到下一屏
stepX: window.innerWidth, // 横向切换距离为窗口宽度
stepY: window.innerHeight // 纵向切换距离为窗口高度
}
}
了解详情
options参数
startX: 0 开始的X轴位置
startY: 0 开始的Y轴位置
scrollY: true 滚动方向为 Y 轴
scrollX: true 滚动方向为 X 轴
click: true 是否派发click事件,通常判断浏览器派发的click还是betterscroll派发的click,可以用_constructed,若是bs派发的则为true
directionLockThreshold: 5
momentum: true 当快速滑动时是否开启滑动惯性
bounce: true 是否启用回弹动画效果
selectedIndex: 0 wheel 为 true 时有效,表示被选中的 wheel 索引
rotate: 25 wheel 为 true 时有效,表示被选中的 wheel 每一层的旋转角度
wheel: false 该属性是给 picker 组件使用的,普通的列表滚动不需要配置
snap: false 该属性是给 slider 组件使用的,普通的列表滚动不需要配置
snapLoop: false 是否可以无缝循环轮播
snapThreshold: 0.1 用手指滑动时页面可切换的阈值,大于这个阈值可以滑动的下一页
snapSpeed: 400, 轮播图切换的动画时间
swipeTime: 2500 swipe 持续时间
bounceTime: 700 弹力动画持续的毫秒数
adjustTime: 400 wheel 为 true 有用,调整停留位置的时间
swipeBounceTime: 1200 swipe 回弹 时间
deceleration: 0.001 滚动动量减速越大越快,建议不大于0.01
momentumLimitTime: 300 符合惯性拖动的最大时间
momentumLimitDistance: 15 符合惯性拖动的最小拖动距离
resizePolling: 60 重新调整窗口大小时,重新计算better-scroll的时间间隔
preventDefault: true 是否阻止默认事件
preventDefaultException: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/ } 阻止默认事件
HWCompositing: true 是否启用硬件加速
useTransition: true 是否使用CSS3的Transition属性
useTransform: true 是否使用CSS3的Transform属性
probeType: 1 滚动的时候会派发scroll事件,会截流。2滚动的时候实时派发scroll事件,不会截流。 3除了实时派发scroll事件,在swipe的情况下仍然能实时派发scroll事件
Event事件
beforeScrollStart - 滚动开始之前触发
scrollStart - 滚动开始时触发
scroll - 滚动时触发
scrollCancel - 取消滚动时触发
scrollEnd - 滚动结束时触发
touchend - 手指移开屏幕时触发
flick - 触发了 fastclick 时的回调函数
refresh - 当 better-scroll 刷新时触发
destroy - 销毁 better-scroll 实例时触发