在vue中的内容页中,总是会出现内容页的滚动高度不够问题,原因其实就是better-scroll的初始化时图片还没下载完。

所以计算的是当时dom元素的高度。找到原因后解决方案也就好说了。

直接上代码:

updated () {
        //解决better-scroll因为图片没有下载完导致的滚动条高度不够,无法浏览全部内容的问题。
        //原因是better-scroll初始化是在dom加载后执行,此时图片没有下载完成,导致滚动条高度计算不准确。
        //利用图片的complete属性进行判断,当所有图片下载完成后再对scroll重新计算。
        let img = document.getElementsByClassName('content')[0].getElementsByTagName('img')
        let count = 0
        let length = img.length
        if (length) {
            let timer = setInterval(() => {
                if (count == length) {
                    // console.log('refresh')
                    this.scroll.refresh()
                    clearInterval(timer)
                } else if (img[count].complete) {
                    count ++
                }
            }, 100)
        }
        
    },

 

Logo

前往低代码交流专区

更多推荐