在Chrome上,我可以通过查看window.visualViewport.scale
来获得视口比例,它在Safari上可用,但是window.visualViewport
似乎未在iOS上的Safari的旧版本中定义。
有任何解决方法吗?
visualViewport.scale
应该在2019年9月19日发行的13.0版的iOS的Safari浏览器中可用。如果您确实需要支持iOS的较早版本的Safari,并且也不需要在页面加载时直接测量比例,则可以尝试捕获touch events并自己猜测/计算比例。
[如果您真的要绝望,可以尝试“发明一些自行车”。例如(仅概念):在<div>
内部创建并测量2 <body>
。其中一个width: 100vw;
和另一个width: 100%;
(实际上是不需要的,因为块已经是父块宽度的100%)。这里的把戏将在不同的单位。
100vw
应该始终是视口的100%,而100%应该拉伸以获得最大可用宽度。测量这两个块之间的差异,即可计算出比例。请注意那些棘手的边距/边距,也许还有风景。unested