【发布时间】:2021-04-03 09:59:30
【问题描述】:
在 CSS 中,我可以这样做:
<div class="aspect-ratio-box"></div>
body {
max-width: 1366px;
margin: 0 auto;
padding: 20px;
}
.aspect-ratio-box {
height: 0;
padding-top: 56.25%;
background: red;
}
这是CodePen。尝试调整浏览器窗口的大小,看看它如何保持纵横比。
但我不知道如何使用 Konva,尤其是 React Konva,我必须使用 width、height 和 aspectRatio 来保持纵横比。没有padding-top。
我该怎么做?
注意:它看起来类似于How to resize images proportionally / keeping the aspect ratio?,但我尝试过this solution,当我缩小浏览器时它会从原始位置(宽度=1024,高度=600)跳起来但是当我再次增长它永远不会回到原来的位置(宽度=1024,高度=600)
这就是我希望我的应用看起来的样子:
基本上我想在JS中完成中心的白色部分,因为我需要使用Canvas。
【问题讨论】:
-
@oguzhancerit 不,我已经检查过这个解决方案 → stackoverflow.com/a/14731922/6141587 很接近,但初始位置(宽度=1024,高度=600)永远不会再次获得。我很想解决这个问题,但似乎无法找到一种不使用 CSS 的方法
padding-top& 可以纯粹在 JS 中完成,但输出类似于 codepen.io/chriscoyier/pen/BZNoev -
@oguzhancerit 我用一张图片编辑了这个问题。如果这有意义的话,我已经展示了我试图完成的事情:)
标签: html css aspect-ratio konvajs react-konva