javascript - 如何获得在 iOS Safari 上工作的根 <html> 元素的基于动量的滚动?

标签 javascript css mobile-safari

我们遇到了一个问题,让momentum-based scrollingroot <html> 的 iOS Safari 上工作。元素

以下确实得到了预期的结果:

<br/>
html {
    height: 100%;
    overflow-y: scroll;
}<p></p>

<p>body {
    height: 100%;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
}
</p>

但是,滚动条从屏幕上完全消失了。

尝试了以下建议来取回滚动条,但不起作用。


::-webkit-scrollbar {
    -webkit-appearance: none;
    width: 7px;
}<p></p>

<p>::-webkit-scrollbar-thumb {
    border-radius: 4px;
    background-color: rgba(0,0,0,.5);
    -webkit-box-shadow: 0 0 1px rgba(255,255,255,.5);
}
</p>

这也行不通:


body {
    height: calc(100% + 1px);
}

当我说滚动条消失时,我的意思是滚动条根本不存在。以下 JS 打印“0”,即使在页面向下滚动到一半时也是如此:


const y = document.body.scrollTop || 
document.documentElement.scrollTop || 
document.scrollingElement.scrollTop;<p></p>

<p>console.log(y);
</p>

我知道 iOS Safari 上基于动量的滚动有问题。

  • 有没有人设法让根滚动工作<html>元素?
  • 有没有人对如何获取滚动值有任何建议document.body.scrollTop

我们目前不打算使用任何外部库。

谢谢

最佳答案

使用此 CSS 属性并重试。

-webkit-overflow-scrolling: touch;

https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-overflow-scrolling

关于javascript - 如何获得在 iOS Safari 上工作的根 <html> 元素的基于动量的滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43277181/

相关文章:

javascript - 对带有 Jest 的组件使用自定义模拟

jquery - 生成随机颜色 jQuery 不添加 css

iOS:创建链接按钮

ios - CSS - 滚动时坚持到 iOS Safari 的底部

javascript - 为什么 d3.js 中的循环包装中的 d3.hierarchy 的 r 值为负数?

javascript - rmarkdown : toggling code blocks in the browser

javascript - browserify 两个单独的包传递第二个文件中的变量

css - "Chaining"不同高度的 block ,带显示 :inline-block

javascript - svg 到 png 不工作,怀疑 svg 元素差异

iphone - 按比例缩小的图像在移动 safari 中模糊不清(仅在一页上)