【问题标题】:SVG mobile orientation changeSVG 移动方向更改
【发布时间】:2017-01-31 05:19:24
【问题描述】:

我正在开发一个 SVG,到目前为止一切都很好,除了一个问题。

通常,在根元素上没有宽度/高度属性的情况下,SVG 会缩放以填充视口。

但是在移动设备上,我注意到更改方向会破坏此功能。当从纵向旋转到横向时,原始屏幕宽度变为视口的宽度,并且 SVG 远离底部。向后旋转会产生相反的问题,导致 SVG 非常小。

这不会在桌面上发生,当调整浏览器窗口大小时 - SVG 会正确调整其比例以填充可用空间。

如何在屏幕方向改变时强制 SVG 比例正确重新计算?

【问题讨论】:

  • 我假设“在移动设备上”您并不是指每个操作系统上的每个浏览器 :) 您使用的是哪种浏览器/操作系统组合?
  • @PaulLeBeau 啊,好点子。我在 Android(HTC10 手机)上的 Chrome 中遇到过此问题

标签: javascript android css svg


【解决方案1】:

已通过强制重绘解决了该问题。这可以通过执行任何导致 SVG 以某种方式发生变化的操作来完成,即使该“更改”是无操作的。

在这种情况下...

window.addEventListener('resize',function() {
    svg.setAttribute("x",0);
});

...工作得很好。

【讨论】:

  • 我很好奇这是否仍然是最好的解决方案。对于metricsgraphicsjs.org 生成的 svg 图,我面临同样的问题,并且希望避免手动强制重绘
猜你喜欢
  • 1970-01-01
  • 2013-09-15
  • 2021-02-27
  • 1970-01-01
  • 2021-01-16
  • 2016-04-06
  • 1970-01-01
  • 2021-03-21
  • 1970-01-01
相关资源
最近更新 更多