javascript - 如何在 javascript 中调整 html5 Canvas 的大小和位置

标签 javascript css html5-canvas

我正在使用 javascript 动态创建 Canvas 并将其显示在网页上,但 Canvas 的大小和 Canvas 的位置都根据正在查看网页的设备的大小而有所不同,无论是移动设备,还是桌面。我会在 css 中执行此操作,但据我所知,css 不能完全用于 html5 Canvas 。我会用这个:

#myCanvas{
  height: 50%;
  width: 50%;
  position: relative;
  top: 10%;
  left: 10%;
}

但是 Canvas 的高度和宽度值只采用像素值,我能想到的唯一解决方案是获取父元素的大小,然后获取其中的一部分来描述我希望 Canvas 达到的大小是。但是,如果那不起作用,我不知道。就定位而言,我不知道我应该做什么。就像我说的那样,我正在动态创建 Canvas ,因此代码如下所示:

var c = document.createElement("canvas");
c.height = (whatever value);
c.width = (whatever value);
c.style.position = "relative";
c.style.top = (whatever value);
c.style.left = (whatever value);
var ctx = c.getContext('2d');
parentElement.appendChild('c');

如果有人能给我解决问题的方法,那将非常有帮助,谢谢 =)

最佳答案

将 Canvas 封装在容器 div 中,将此 div 的尺寸设置为成比例而不是固定。 然后,使用 JQuery 的“调整大小”函数将 Canvas 的尺寸设置为容器 div 的宽度和高度。

$(window).resize(function() {
   $('#canvas').attr('width', $('#parent').width());
   $('#canvas').attr('height', $('#parent').height());
});

阅读本文了解更多信息:http://ameijer.nl/2011/08/resizable-html5-canvas/

关于javascript - 如何在 javascript 中调整 html5 Canvas 的大小和位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31820079/

相关文章:

javascript - Html Checkbox,多个具有相同的 'name' 。如果选中,值为 1,如果未选中,值为 0

asp.net - Ajax ConfirmButtonExtender 在 OnClientClick javascript 代码之前触发

javascript - 彼此上方的两个 Canvas 返回不同的 x,y 坐标

javascript - 如何在具有动态旋转值的 HTML5 Canvas 中绘制水印?

javascript - 删除 ...} 后括号缩进?

javascript - (new { htmlAtributes = new { }) 和 (new { }) 有什么区别

javascript - 从 Accordion 弹出中删除奇怪的故障

html - 如何将 embed 标签的大小强制为 div 标签的大小?

html - Mozilla Firefox 中多种字体大小的文本装饰

javascript - 冲动在线动画