bscroll 无法滚动到底部。
来源:4-11 scroll 组件的抽象和应用(下)
一十xwjian
2018-12-26
HTML 代码
<scroll class="wrapper" ref="scroll">
<div class="m-cdetail">
// 富文本内容
<div v-html="data && data.content"></div>
</div>
</scroll>
JS
methods: {
_refreshScroll() {
let imgElemList = document.querySelectorAll('img')
let imgList = Array.prototype.slice.call(imgElemList)
// 获取图片, 计算图片高度, 进行重新计算高度
imgList.forEach(element => {
element.onload = () => {
this.$refs.scroll.refresh()
}
})
},
created() {
setTimeout(() => {
this._refreshScroll()
}, 100)
}
浏览器可以获取到高度
真机 魅族 测试滚动不到底部…
写回答
3回答
-
你的富文本里有图片吧,你需要等待富文本图片里的图片加载完成的时候执行 scroll 的 refresh,你可以基于 vconsole 做一下调试。
022018-12-26 -
一十xwjian
提问者
2018-12-26
现在代码改成这样了。。。
JS
_refreshScroll() { let imgElemList = document.querySelectorAll('img') let imgList = Array.prototype.slice.call(imgElemList) console.log(imgList) imgList.forEach(element => { let img = new Image() img.src = element.src console.log(img.height, img.width) img.onload = () => { this.$refs.scroll.refresh() } }) } created() { this._getCmsInfo() setTimeout(() => { this._refreshScroll() }, 20) },
00 -
一十xwjian
提问者
2018-12-26
关于富文本里面的 延迟调用 refresh, 现在富文本里面的就 3 个图片, 我设置了 500 延迟,不知道图片多了会不会有问题。。。
_refreshScroll() { // imgElemList Android 不支持 Element.forEach, 所以转换类数据 let imgElemList = document.querySelectorAll('img') let imgList = Array.prototype.slice.call(imgElemList) let img, item, that = this for (let i = 0; i < imgList.length; i++) { item = imgList[i] img = new Image() img.src = item.src img.onload = function() { that.$refs.scroll.refresh() } } }
=== 调用 ====
created() { // 接口获取富文本数据 this._getCmsInfo() setTimeout(() => { // 刷新 this._refreshScroll() }, 500) },
052018-12-27
相似问题