在mouted时, 取得的slider.clientWidth 和轮播开始时的 slider.clientWidth 不同
来源:4-6 轮播图组件实现(下)
慕UI1265895
2019-03-11
轮播图中,在电脑模式下,有时会出现轮播图的大小比视口的大小 小一点。
如图:
取得的视口大小会发生变化,发现在第一次_setSliderWidth
的时候,读到的视口宽度和在轮播图滚动一次后重新读取this.$ref.slider.clientWidth
视口不相同。前者尺寸稍小,后者才是正常的尺寸。
这种情况仅在电脑端出现,在移动设备模式下没有这种情况发生。
这个期间没有发生任何的手动窗口缩放。
上面的这个问题,导致我不得不这样写初始化:
setTimeout(() => {
this._setSliderWidth()
this._initDots()
this._initSlider()
this._setSliderWidth()
this.slider.refresh()
if (this.autoplay) {
this._play()
}
}, 20)
所有依赖包都是最新的。
写回答
2回答
-
ustbhuangyi
2019-03-12
你有来回切换模式吗
022019-03-12 -
慕UI1265895
提问者
2019-03-11
在手机模式下,没有这个问题
00
相似问题