在html5 中把canvas标签写在<body>中 而jsp代码写在<head>中就会出错呢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在html5 中把canvas标签写在<body>中 而jsp代码写在<head>中就会出错呢相关的知识,希望对你有一定的参考价值。
本人亲测,放在head中和外部js中全部失效,只有放在body中才能正常显示,首先需要明确的一点是放在head中的js并不会自动执行,除非您亲自调用,而放在body中的会自动执行,所以你如果想放在head中,那么请把它包在一个function中,并在window.onload函数调用即可。如果是外部js,也是不会自动执行,两种方法,一种是放在JQ的ready中,一种同head。 参考技术A 把代码贴出来看看。追问
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.fillStyle="#FF0000";
cxt.beginPath();
cxt.arc(70,18,15,0,Math.PI*2,true);
cxt.closePath();
cxt.fill();
[html5] 学习笔记-Canvas标签的使用
Canvas通过JavaScript来绘制2D图形。Canvas是逐像素渲染的。在Canvas中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何已被图形覆盖的对象。
1、Canvas标签
html5中<canvas>元素用于图形的绘制,通过脚本(通常是JavaScript)来完成
<canvas>标签只是图形容器
可以通过多种方法使用Canvas绘制路径、盒、圆、字符以及添加图像
1.1 直接在html5中创建,这种方式采用得比较少
1 <DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 <style> 7 .canvas{ 8 background-color: aqua; 9 } 10 </style> 11 </head> 12 <body> 13 <canvas class="canvas" id="canvas1" width="200px" height="200px"></canvas> 14 </body> 15 </html>
1.2 通过脚本创建
html文件:
1 <DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 </head> 7 <script src="app.js"></script> 8 <body> 9 </body> 10 </html>
其中使用到的app.js:
1 var CANVAS_WIDTH = 200, CANVAS_HEIGHT=200; 2 3 window.onload = function(){ 4 createCanvas(); 5 } 6 7 function createCanvas(){ 8 document.body.innerHTML = "<canvas id=\"mycanvas\" width = \""+CANVAS_WIDTH+"\" height = \""+CANVAS_HEIGHT+"\"></canvas>" 9 }
2、绘制图形
API的地址:https://developer.mozilla.org/zh-CN/ 进入后选择WEB平台的Web API & DOM
1 <DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 </head> 7 <script src="app.js"></script> 8 <body> 9 </body> 10 </html>
其中的app.js:
1 var CANVAS_WIDTH = 500, CANVAS_HEIGHT=500; 2 var mycanvas,context; 3 4 window.onload = function(){ 5 createCanvas(); 6 drawRect(); 7 } 8 9 function createCanvas(){ 10 document.body.innerHTML = "<canvas id=\"mycanvas\" width = \""+CANVAS_WIDTH+"\" height = \""+CANVAS_HEIGHT+"\"></canvas>" 11 mycanvas = document.getElementById("mycanvas"); 12 context = mycanvas.getContext("2d"); 13 } 14 15 function drawRect(){ 16 context.fillStyle="#ff0000"; 17 context.translate(200,200); 18 context.rotate(45); 19 context.scale(2,0.5); 20 context.fillRect(0,0,200,200); 21 }
3、绘制图片
将app.js中drawRect()的内容替换成以下即可:
1 var img = new Image(); 2 img.onload = function(){ 3 context.drawImage(img,0,0); 4 } 5 img.src="1.jpg";
以上是关于在html5 中把canvas标签写在<body>中 而jsp代码写在<head>中就会出错呢的主要内容,如果未能解决你的问题,请参考以下文章