# FAQ
# 为什么 BetterScroll 初始化不能滚动?
BetterScroll 滚动原理是 content 元素的高度/宽度超过 wrapper 元素的高度/宽度。而且,如果你的 content 元素含有不固定尺寸的图片,你必须在图片加载完之后,调用 refresh()
方法来确保高度计算正确。还存在一种情况是页面存在表单元素,弹出键盘之后,将页面的视口高度压缩,导致 bs 不能正常工作,依然是调用 refresh()
方法。
# 为什么 BetterScroll 区域的点击事件无法被触发?
BetterScroll 默认会阻止浏览器的原生 click 事件。如果你想要 click 事件生效,BetterScroll 会派发一个 click 事件,并且 event 参数的 _constructed
为 true。配置项如下:
import BScroll from '@better-scroll/core'
let bs = new BScroll('./div', {
click: true
})
# 为什么我的 BetterScroll 监听 scroll
钩子,监听器不执行?
BetterScroll 通过 probeType 配置项来决定是否派发 scroll
钩子,因为这是有一些性能损耗的。probeType 为 2 的时候会实时的派发事件,probeType 为 3 的时候会在 momentum 动量动画的时候派发事件。建议设置为 3。
import BScroll from '@better-scroll/core'
let bs = new BScroll('./div', {
probeType: 3
})
# slide 用了横向滚动,发现在 slide 区域纵向滚动无效?
如果想要保留浏览器的原生纵向滚动,需要如下配置项:
import BScroll from '@better-scroll/core'
let bs = new BScroll('./div', {
eventPassthrough: 'vertical'
})