设置画布宽度100%和最大宽度
Setting canvas width 100% and max-width
我想将宽度设置为100%,并将其限制为画布元素的最大宽度。不管画布的宽度如何,我都希望有静态的画布高度。但当我用css设置它时,浏览器似乎用标准的siza绘制画布,并将画布重新调整为100%的宽度,并按比例调整高度。但最糟糕的是,它在画布内缩放了画面。我还尝试从JS设置画布的css宽度属性,但结果相同。
<canvas id="myCanvas" width="100%" height="630px"></canvas>
制作宽100px、高630px的画布
<canvas id="myCanvas"></canvas>
和css
#myCanvas {
width:100%;
height:630px;
}
使画布宽度为100%但按比例调整高度并缩放画布内的图像。用JS设置css也是如此。
我该怎么做?
画布元素的绘图API维度不需要匹配它在屏幕上占据的CSS维度。如果需要的话,这允许用户进行子像素图形处理(以创建带有抗锯齿的平滑运动)。因此,画布宽度100%意味着它不想要它应该使用的像素数,我相信你会得到默认宽度400,就好像根本没有使用宽度一样。但是,可以使用javascript将其更改为您想要的任何宽度。
var canvas = document.getElementsByTagName('canvas')[0];
canvas.width = $(window).width();
canvas.height = 630;
或者进行抗锯齿。
var canvas = document.getElementsByTagName('canvas')[0];
canvas.width = $(window).width()*2;
canvas.height = 630*2;
将画布宽度设置为高于其在屏幕上的空间的数字。每个画布像素只占实际像素的1/2,移动看起来更像视频。
更新添加的jsfiddle
http://jsfiddle.net/juaovd7o/
<canvas id="myCanvas" width="284px" height="120px">hello</canvas>
<canvas id="myCanvas2" style="width:284px;height:120px;"></canvas>
<img src="http://whitedove-coding.com/static/whitedove-829.png" id="dove">
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
context.beginPath();
context.rect(0, 0, 284, 120);
context.lineWidth = 4;
context.strokeStyle = 'black';
context.stroke();
var canvas2 = document.getElementById('myCanvas2');
canvas2.width=568;
canvas2.height=240;
var context2 = canvas2.getContext('2d');
context2.beginPath();
context2.rect(0, 0, 568, 240);
context2.lineWidth = 4;
context2.strokeStyle = 'black';
context2.stroke();
var img=document.getElementById("dove");
context2.drawImage(img,0,0);
context.drawImage(img,0,0);
如果不通过其他方式设置css和API宽度,则width attrib将同时设置css和API宽度,但100%宽度对API无效,因此API将回退到其默认宽度400px。
根据您的问题,您需要使用100%的CSS宽度,并将画布API设置为像素数或像素数?jquery$(window).width()给出了100%的像素计数。
相关文章:
- 宽度为100%的CSS元素位于视口之外
- 如何在jQuery Mobile中设置100%宽度的输入类型日期
- 普通JS:使80%宽度元素100%IF包含一个图像
- 使用css中设置的表宽度:100%,使表内容适合宽度
- 如何创建带有背景的三角形形状(固定高度,宽度= 100%)
- 图像宽度 100% 事件
- JQuery 滚动到不适用于高度和宽度 100%
- 使用CSS旋转元素后使用高度/宽度100%
- HR宽度100%问题
- 设置画布宽度100%和最大宽度
- HTML5画布的高度和宽度100%扭曲游戏动画
- Bootstrap 3标签-展开标签's宽度100%
- 如何使文本和宽度100%的分辨率和输入集中
- 为什么是宽度100%的html代码全栏不工作,当我写.忘了那个吧,连复制粘贴都不起作用.为什么
- 引导旋转木马宽度100%和响应
- 循环jquery插件是采取宽度:100%,并给予它的左样式选项scrollHorz
- 我如何创建一个JS函数,将“宽度:100%”划分为“th”的数字
- CSS宽度100%在文本区域的边距内
- 元素在调整大小时错位(使用最大宽度:100%根据窗口大小缩放)
- 点击打开菜单宽度100%