javascript - p5 Canvas 重新居中

标签 javascript html css p5.js

我正在开发一款障碍游戏,类似于 chrome 恐龙游戏或几何冲刺游戏,但我在 CSS 方面遇到了一些问题。

我的第一个问题:我试图将 Canvas 水平和垂直居中到屏幕中间。这是我的代码,仅适用于全屏页面:

html, body {
  
  margin: 0;
  padding: 0;
  align-items: center;
  display: flex;
  
}
canvas {
  
  position: absolute;
  top: 25%;
  left: 10%;
  display: block;
  border: 15px solid #edce00;   
  border-radius: 30px;
  align-items: center;
  display: flex;
  
}

以下是全屏页面与更改页面大小的对比:

full-screen altered screen size

如您所见,游戏在调整尺寸的页面上并不完全可见。这引出了我的第二个问题。

我的第二个问题:我也在尝试设置最小页面大小。这样,将显示整个游戏屏幕,无论屏幕有多大或多小(在某种程度上)。有什么方法可以让 Canvas 根据页面大小自行调整大小,并确保它不小于“x”数量?这是用 Javascript 还是 CSS 完成的?

如果您能帮我解决这两个问题,那将大有帮助。谢谢!

编辑:如果有帮助,这里是 p5 草图的链接。 https://editor.p5js.org/ThisBubblyBoi/sketches/CbxWQSrjF

最佳答案

不幸的是,如果您尝试使用 CSS 调整 Canvas 元素的大小,当您在其上绘制时它会变得模糊。

所以你得用Js来设置canvas的widthheight属性。请注意,因此您可能不得不更改在 Canvas 上绘制的方式。

let canvas = document.querySelector("#myCanvas");
canvas.width = Math.max(400, canvas.clientWidth);
canvas.height = canvas.clientHeight;
body {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  height: 100vh;
  width: 100vw;
  min-width: 400px;
  padding: 60px;

}

canvas {
  border: 2px solid yellow;
  width: 100%;
  height: 100px;
}
<canvas id="myCanvas" width="50" height="50"/>

请注意,如果使用此解决方案在 Canvas 上绘制然后调整大小,它看起来会很模糊,您只需使用正确的分辨率刷新页面即可解决此问题。

关于javascript - p5 Canvas 重新居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66068668/

相关文章:

javascript - 如何检测IE8兼容模式

javascript - 如何单击按钮并更改先前显示的文本( html )

javascript - jQuery 将删除按钮附加到列表中会不断添加额外的按钮

html - 我可以调用一个末尾有空格的类名吗?

html - CSS:渐变仅适用于背景的一半,但背景底色适用于整个页面?

javascript - 柔性过渡 : Stretch (or shrink) to fit content

javascript - Dynamics 365。字段值 (javascript)

javascript - 我的土地面积计算器应用程序的逻辑

php - php代码第14行 undefined index

javascript - 在移动设备上禁用粘性导航