在 IntersectionObserver 里面使用了 xx.scrollTop = xx,经过测试在 pc 端完全正常,滚动条有滚动。但是在移动端(安卓),虽然有赋值成功,但是没有滚动。
没有用到框架,为原生 js
this.selectedItem = new IntersectionObserver((entries) => {
entries.forEach((item) => {
if (item.isIntersecting) {
// 就是这行
this.yearScrollEl.scrollTop = 100
}
})
}, {
root: this.element.querySelector('.timePicker-wheel'),
threshold: [0.6]
})
this.element.querySelectorAll('li').forEach((item) => {
this.selectedItem.observe(item)
})
加了一个定时器之后,在移动端就正常了:
setTimeout(() => {
this.yearScrollEl.scrollTop = 100
},300)
但是不知道原理,希望顺便能请教各位这一点
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.