javascript - 如何正确选择 Canvas 宽度?

标签 javascript css html twitter-bootstrap canvas

我正在使用以下代码(根据 this answer )来制作响应式 Canvas :

var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var cw = canvas.width;
var ch = canvas.height;
ctx.font = '52px verdana';
var text = 'Sample text';
var textWidth = ctx.measureText(text).width;
ctx.fillText(text, 50, 50);
canvas {
  width: 100%;
  height: auto;
}
<div class="container">
  <div class="row">
    <div class="col-md-12">
      <canvas id="canvas" width="800">
        Sorry, your browser doesn't support the &lt;canvas&gt; element.
      </canvas>
    </div>
  </div>
</div>

它看起来不太好,因为实际的 Canvas 元素大小不是 800,而是 1140(在我的浏览器中)。看起来我应该以某种方式检测窗口大小并分配正确的 Canvas 大小值。我应该怎么做?我正在使用最新的 Twitter Bootstrap 库。

最佳答案

不要使用css样式

ctx.canvas.width  = window.innerWidth || document.body.clientWidth;

关于javascript - 如何正确选择 Canvas 宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27926788/

相关文章:

javascript - jQuery div 掉落效果onload

html - 让打印机打印出网站背景

html - 纯 css 替换工具提示的悬停问题

html - 响应式 CSS 表格布局使一个单元格表现得像一行

javascript - 通过 css 或 js 的进度条动画?

javascript - 如何为每个选项填充 "value"参数的下拉框?

javascript - $(...).autocomplete 不是一个函数

javascript - 使用谷歌搜索 url

html - 使用 pdf2htmlEx 工具将 pdf 转换为 html 期间字体未对齐

jquery - Bootstrap 3 选项卡 CSS 自定义