【发布时间】:2022-01-03 21:36:07
【问题描述】:
在尝试让我的 Canvas/Stage 调整大小并正确适合父容器时遇到了一些问题。我发现了其他类似的帖子,虽然答案确实帮助我获得了新的屏幕尺寸,但它仍然不想适合容器,而是直接到屏幕的边缘(这是示例中所预期的),用左/右内容遍历父容器。
我尝试了许多不同的方法,但仍然找不到正确的方法,它不会超出父容器,并且 X/Y 比例不会偏离画布内形状的位置。对我来说最明显的方法是通过 CSS 为实际的画布/舞台设置一个约束,但这最终会导致缩放使形状出现在画布之外。
在代码链接中,我包含了我尝试执行的 hacky 方法,虽然它在某些情况下对于较小的设备屏幕看起来是正确的,但画布宽度仍会超出父容器。我不确定我是否想太多,或者是否有更简单的方法来解决我的问题,任何帮助或提示都会很棒。
实时代码沙盒:https://codesandbox.io/s/white-surf-yc2vh
想要的结果图片:https://imgur.com/a/w0oXxG0
【问题讨论】:
-
1.您希望画布保持固定大小(就像在您的代码中一样),还是要调整画布大小以适应父容器? 2.您是否希望内容相对于画布调整大小,以便例如如果画布变小,形状会变小,或者如果画布太小,内容是否应该被剪裁?
-
抱歉回复晚了。 1. 我想调整画布大小以适应父容器。 2. 这是我目前遇到的一个问题,理想情况下,即使画布变小,我也希望内容(在本例中为圆圈)具有相同的外观(宽度/高度等)。在我的 hacky 解决方案中,我注意到即使应用了缩放,当画布小于更大屏幕时,圆圈看起来也不同(这可能是我计算它的问题)。所以我认为当画布太小时内容应该被剪裁。
标签: javascript reactjs canvas konvajs react-konva