window.scrollto 和 scrollIntoView 在 ios 中不能平滑滚动

Posted

技术标签:

【中文标题】window.scrollto 和 scrollIntoView 在 ios 中不能平滑滚动【英文标题】:window.scrollto and scrollIntoView not scroll smoothly in ios 【发布时间】:2020-01-08 11:15:27 【问题描述】:

我有一个固定的顶栏,当我点击它时,页面会滚动到相应的部分。但是,它在我的 iphone8(ios13) 中滚动不顺畅,但在 chrome 和 android 中运行良好。 我尝试使用scrollIntoview,但它也不起作用。 这是代码

scrollToAnchor = tabIndex => 
      window.scrollTo(
        top: this.state.tabListTop[tabIndex] - 76,
        behavior: 'smooth'
    )
  

【问题讨论】:

【参考方案1】:

你可以用老式的方式实现这一点:

smoothScroll = (height) => 
    // "height" is the Height you want to scroll to
    var i = 10;
    var int = setInterval(function() 
        window.scrollTo(0, i);
        i += 10;
        if (i >= height ) clearInterval(int);
    , 20);

【讨论】:

【参考方案2】:

scrollTo 不支持 iOS Safari 中的选项。 以下是 CanIUse 的当前状态:https://caniuse.com/#search=scrollto

【讨论】:

以上是关于window.scrollto 和 scrollIntoView 在 ios 中不能平滑滚动的主要内容,如果未能解决你的问题,请参考以下文章

window.scrollto 和 scrollIntoView 在 ios 中不能平滑滚动

iPad/iPhone 方向上的 window.scrollTo

window.scrollTo 在 iOS chrome 中不起作用

js中的window.scroll与 window.scrollTo 两者是什么关系,有什么区别

如何使用平滑效果的 window.scrollTo() [关闭]

有啥方法可以平滑地为 window.scrollTo(0, 1) 设置动画?