请教大家一个 js 问题:给 scrollTop 赋值在移动端滚动条没有响应

2020 年 6 月 4 日
 6fa

问题描述

在 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)

但是不知道原理,希望顺便能请教各位这一点

774 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/678574

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX