Angular 在 IOS 的webview 里 使用scrollToView 视图未更新

发布于 2022-09-11 21:26:14 字数 752 浏览 25 评论 0

在手机 app 的 webview 里, 我们有一个业务需求是: 点击tabs 然后使 div 滚动到底部和顶部

业务需求:
点击tab(不同tab 对应不同 dom ) => 内容盒子滚动 => 滚动到 指定 dom 元素的位置

出问题的代码:

document.querySelector(dom).scrollIntoView()

组件情况:
changeDetection 为 OnPush 策略。
父组件也为 OnPush 策略

预期结果
能正常的滚动到 div 里 dom元素的位置

实际结果:
Android没有问题,IOS页面滚动了, 但是没有任何内容,但是点击一下就能显示内容.

已经做过的措施
在代码之后已经加了 this.changeDetectorRef.markForCheck()与detectChanges()。 无效
(甚至一开始就加了定时器 每500ms 执行这两句代码)

this.zone.run(()=> {document.querySelector(dom).scrollIntoView()
}) 无效

把代码换成 dom.scrollTo() 这种形式, 也无效。

困扰一天了啊, 不知道怎么解决这个东西,请问有大佬们遇到过这样的问题吗

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

极致的悲 2022-09-18 21:26:14
setTimeout(()=>{
  window.scrollTo(0, 0);
},500)

试试这样回到顶部

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文