2015-01-13 2 views
0

Я использую следующий код (в соответствии с this answer) иметь адаптивный холст:Как правильно выбрать ширину холста?

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>

Это не выглядит хорошо, потому что фактический размер холста элемент не 800, а 1140 (в моем браузере). Похоже, я должен каким-то образом определить размер окна и присвоить правильное значение размера холста. Как я должен это делать? Я использую последнюю библиотеку Twitter Bootstrap.

+0

Полотно атрибута ширина отличается от холста ширина стиля. Смотрите: [Размер холста HTML5 с помощью атрибутов CSS и атрибутов] (http://stackoverflow.com/questions/5034529/size-of-html5-canvas-via-css-versus-element-attributes) и [HTML5 Canvas 100% Ширина Высота Видового экрана?] (Http://stackoverflow.com/a/8486324/1762224) –

ответ

1

Dont использовать CSS стиль

ctx.canvas.width = window.innerWidth || document.body.clientWidth; 
Смежные вопросы