HTML5基础

1.canvas绘制

步骤

添加canvas元素,定义id和范围

js里获取canvas元素

通过getContext()方法获取2D绘制环境

通过不同的函数进行图形绘制

坐标定位

绘制的图形定位都是以canvas的左上角为(0,0)原点

绘制直线

moveTo(): 规定起始点

lineTo(): 从起点绘制到规定坐标的直线

stroke(): 实现绘制直线的功能

fill(): 实现填充功能

实例:绘制一个三角形

html代码

js代码

window.onload =function(){varcanvas =document.getElementById("canvas");  canvas.width =800;  canvas.height =800;varcontext  = canvas.getContext('2d');  context.strokeStyle ="red";  context.moveTo(100,100);  context.lineTo(200,100);  context.lineTo(150,50);  context.lineTo(100,100);  context.stroke();};

HTML5基础_第1张图片

1.png

绘制矩形

fillStyle():设置矩形填充颜色。

fillRect(x,y,width,height)。

strokeStyle():设置矩形轮廓颜色。

strokeRect(x,y,width,height)。

绘制圆形(弧形)

beginPath():开始绘制路线

arc(x,y,radius,startAngle,endAngle,anticlockwise)

设置绘制的中心点,半径,起始角度,结束角度和绘制方向。

贝塞尔曲线

二次贝塞尔曲线

quadraticCurveTo(cp1x,cp1y,x,y)

cp1x,cp1y 表示一个控制点坐标;x,y代表终点坐标。

三次贝塞尔曲线

bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y)

cp1x,cp1y和cp2x,cp2y分别代表

两个控制点。

实例1:绘制一个五角星

window.onload =function(){varcanvas =document.getElementById("canvas");varcontext = canvas.getContext('2d');    drawStar(context,120,120,80,30,10,"yellow",0);}functiondrawStar(context, x, y, R, r, width, color, rotation){    context.beginPath();for(vari =0; i <5; i++) {        context.lineTo(Math.cos((18+ i *72- rotation) /180*Math.PI) * R + x, -Math.sin((18+ i *72- rotation) /180*Math.PI) * R + y);        context.lineTo(Math.cos((54+ i *72- rotation) /180*Math.PI) * r + x, -Math.sin((54+ i *72- rotation) /180*Math.PI) * r + y);    }    context.closePath();    context.lineWidth = width;    context.fillStyle = color;    context.fill();}

HTML5基础_第2张图片

2.png

实例2:绘制宝马标志

window.onload =function(){varcanvas =document.getElementById("canvas");    canvas.width =800;    canvas.height =800;varcontext = canvas.getContext('2d');//圆心坐标x,y  内圆半径r  外圆半径Rvarx =100;vary =100;varr =100;varR = r +50;varcolors =Array("#87CEFA","#FAFAFA","#000");    context.beginPath();    context.translate(100,100);    context.arc(x, y, R,0,Math.PI *2);    line_gra = context.createLinearGradient(-10, -10,20,50);    line_gra.addColorStop(0,"#ddd");    line_gra.addColorStop(1,"#262626");    context.lineWidth =3;    context.strokeStyle ="#000";    context.fillStyle = line_gra;    context.closePath();    context.stroke();    context.fill();    drawBigRound(context, x, y, r,53,"#ADD8E6",7);    drawBm(context, x, y, r, colors);    drawBigRound(context, x, y, r,3,"#9FB6CD",5);    context.beginPath();    context.fillStyle ="#fff";    context.font ="bold 40px verdana";    context.fillText("M",80, -10);    context.rotate(Math.PI /6);    context.fillText("W",125, -75);    context.rotate(-(Math.PI /2));    context.fillText("B",0,35);    context.restore();}functiondrawBm(context, x, y, r, colors){varcolor;for(vari =0; i <4; i++) {        context.beginPath();        context.moveTo(x, y);        context.arc(x, y, r,Math.PI * i /2,Math.PI * (i +1) /2);if(i ==0|| i ==2) {            color = colors[0];        }else{            color = colors[1];        }        context.fillStyle = color;        context.lineWidth =2;        context.strokeStyle = colors[2];        context.closePath();        context.fill();        context.stroke();    }}functiondrawBigRound(context, x, y, r, addr, color, lineWidth){    context.beginPath();    context.arc(x, y, r + addr,0,Math.PI *2);    context.lineWidth = lineWidth;    context.strokeStyle = color;    context.closePath();    context.stroke();}

HTML5基础_第3张图片

bm.png

2.CSS3 阴影 box-shadow

box-shadow: h-shadow v-shadow blur spread color inset;

h-shadow    必需。水平阴影的位置。允许负值。

v-shadow    必需。垂直阴影的位置。允许负值。

blur    可选。模糊距离。

spread    可选。阴影的尺寸。

color    可选。阴影的颜色。请参阅 CSS 颜色值。

inset    可选。将外部阴影 (outset) 改为内部阴影。

3.CSS3 transform属性

transform: none|transform-functions;

transform:rotate(): 旋转,deg是度的意思

transform:rotate(-10deg);

transform:skew(): 倾斜

transform:skew(20deg);

transform:scale(): 缩放,x方向2倍,y方向1.5倍

transform:scale(2,1.5);

transform:translate(): 平移,x方向平移120px,y方向平移10px

transform:translate(120px,10px);

4.CSS3 transtion属性

transition: property duration timing-function delay;

transition-property    规定设置过渡效果的 CSS 属性的名称。

transition-duration    规定完成过渡效果需要多少秒或毫秒。

transition-timing-function    规定速度效果的速度曲线。

transition-delay    定义过渡效果何时开始。

div{width:100px;transition:width2s;-moz-transition:width2s;/* Firefox 4 */-webkit-transition:width2s;/* Safari 和 Chrome */-o-transition:width2s;/* Opera */}

你可能感兴趣的:(HTML5基础)