canvas.width,canvas.height

  canvas.width,canvas.height

  最近因为工作需要,学习了Html中的Canvas标签。

  Canvas是HTML5的新组件。它就像一个幕布,你可以在上面绘制各种图表、动画等。用JavaScript。

  在没有画布的时代,绘图只能借助Flash插件来实现,页面要和JavaScript、Flash交互。有了Canvas,我们就不再需要Flash了,可以直接用JavaScript来完成绘制。

  当我看了教程,自己写了一个hello world的时候,麻烦出现了。请看下面的代码:

  !DOCTYPE html html lang= en body canvas id= can vas 1 style= width:200 px;高度:200px边框:1px纯黑;/canvas script var oC=document . getelementbyid( can vas 1 );var CTX=oc . get context( 2d );ctx.moveTo(0,0);ctx.lineTo(200,200);CTX . stroke();/script/body/html上面代码的意思是在宽高200px的画布上画一条直线。直线的起点为(0,0),终点为(200,200);

  但是,浏览器绘制的图像是:

  看这张图~为什么是这样的坡?应该不是~应该是对角线~ ~

  后来从资料中了解到,在画布标签上设置宽度和高度时,有以下几种方式和后果:

  默认情况下,Canvas元素宽300像素,高150像素。以下方法可用于设置其宽度和高度:

  方法1:

  1画布宽度=500 高度= 500 $ ampamp$ lt/画布

  方法二:使用HTML5 Canvas API进行操作。

  1 var canvas=document . getelementbyid(操作画布的id );

  2 canvas.width=500

  3 canvas.width=500

  如果通过以下方法设置宽度和高度,画布元素将从原始大小拉伸到设置的宽度和高度:

  方法一:CSS会被拉伸。

  1 #待操作画布的id {

  2宽度:1000px

  3高度:1000px

  4 }

  行间样式中的Style= 也包括在内。即使在上面的例子中,拉伸也会发生。

  方法二:使用HTML5 Canvas API的操作会被拉伸。

  1 var canvas=document . getelementbyid(操作画布的id );

  2 canvas . style . width= 1000 px ;

  3 canvas . style . height= 1000 px ;

  方法3:使用$(#id )。jquery的宽度(500);会被拉长。

  其他:画布的宽度和高度不能用百分比表示。Canvas将百分比值显示为数值。

  所以从上面的信息可以知道,原因是我上面例子中的代码会拉伸canvas的宽度和高度,从而使图像与预期的不一致。

  现在我已经重写了一个代码示例,它正确地设置了画布的宽度和高度:

  !DOCTYPE HTMLhtmlbodycanvas id= my canvas width= 200 height= 200 style= border:1px纯黑;您的浏览器不支持画布元素。/canvasscript type= text/JavaScript var c=document . getelementbyid( my canvas );var cxt=c . get context( 2d );cxt.moveTo(0,0);cxt.lineTo(200,200);cxt . stroke();/script/body/html结果:

  结束。

  总结

  这就是本文的全部内容。希望这篇文章的内容对你的学习或工作有一定的参考价值。有问题可以留言交流。谢谢你的支持。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: