html5中文学习网

您的位置: 首页 > html5教程 > 入门教程 » 正文

使用javascript和HTML5 Canvas画的四渐变色播放按钮效果_html5教程技巧

[ ] 已经帮助:人解决问题
点评:这篇文章主要介绍了使用javascript和HTML5 Canvas画的四渐变色播放按钮效果,需要的朋友可以参考下

<canvas></canvas>是html5出现的新标签,像所有的dom对象一样它有自己本身的属性、方法和事件,其中就有绘图的方法,js能够调用它来进行绘图,本文使用canvas标签和Javascript配合画出了一个四色渐变的播放按钮效果,效果图:TvzHTML5中文学习网 - HTML5先行者学习网
TvzHTML5中文学习网 - HTML5先行者学习网
实现代码:TvzHTML5中文学习网 - HTML5先行者学习网


复制代码
代码如下:
<!DOCTYPE HTML>TvzHTML5中文学习网 - HTML5先行者学习网
<html>TvzHTML5中文学习网 - HTML5先行者学习网
<head>TvzHTML5中文学习网 - HTML5先行者学习网
<meta http-equiv="Content-Type" content="text/html; charset=gbk">TvzHTML5中文学习网 - HTML5先行者学习网
<title>画按钮</title>TvzHTML5中文学习网 - HTML5先行者学习网
</head>TvzHTML5中文学习网 - HTML5先行者学习网
<body>TvzHTML5中文学习网 - HTML5先行者学习网
<canvas id="myCanvas" width="600" height="400">您的浏览器不支持Canvas,请升级浏览器!</canvas>TvzHTML5中文学习网 - HTML5先行者学习网
<script type = "text/javascript" >TvzHTML5中文学习网 - HTML5先行者学习网
TvzHTML5中文学习网 - HTML5先行者学习网
var canvas = document.getElementById('myCanvas');/*获取定义的画布*/TvzHTML5中文学习网 - HTML5先行者学习网
var ctx = canvas.getContext('2d');/*利用2维环境中进行绘画*/TvzHTML5中文学习网 - HTML5先行者学习网
drawPlayButton(ctx,200,200);TvzHTML5中文学习网 - HTML5先行者学习网
drawPlayButton(ctx,400,200);TvzHTML5中文学习网 - HTML5先行者学习网
drawPlayButton(ctx,300,200);TvzHTML5中文学习网 - HTML5先行者学习网
function drawPlayButton(_context,x,y){TvzHTML5中文学习网 - HTML5先行者学习网
var nRadius=30;//半径TvzHTML5中文学习网 - HTML5先行者学习网
_context.save();TvzHTML5中文学习网 - HTML5先行者学习网
_context.translate(x,y);TvzHTML5中文学习网 - HTML5先行者学习网
//构造线变TvzHTML5中文学习网 - HTML5先行者学习网
var yellowGrad=_context.createLinearGradient(30,0,0,30);TvzHTML5中文学习网 - HTML5先行者学习网
yellowGrad.addColorStop(0, '#fccb02'); TvzHTML5中文学习网 - HTML5先行者学习网
yellowGrad.addColorStop(0.5, '#fbf14d'); TvzHTML5中文学习网 - HTML5先行者学习网
yellowGrad.addColorStop(1, '#ffcb02');TvzHTML5中文学习网 - HTML5先行者学习网
var blueGrad=_context.createLinearGradient(30,0,0,30);TvzHTML5中文学习网 - HTML5先行者学习网
blueGrad.addColorStop(0, '#2a459c'); TvzHTML5中文学习网 - HTML5先行者学习网
blueGrad.addColorStop(0.5, '#0e7adc'); TvzHTML5中文学习网 - HTML5先行者学习网
blueGrad.addColorStop(1, '#2a459e');TvzHTML5中文学习网 - HTML5先行者学习网
var redGrad=_context.createLinearGradient(30,0,0,30);//通过rotate来旋转TvzHTML5中文学习网 - HTML5先行者学习网
redGrad.addColorStop(0, '#d0372f'); TvzHTML5中文学习网 - HTML5先行者学习网
redGrad.addColorStop(0.5, '#e0675e'); TvzHTML5中文学习网 - HTML5先行者学习网
redGrad.addColorStop(1, '#ce392d');TvzHTML5中文学习网 - HTML5先行者学习网
var greenGrad=_context.createLinearGradient(30,0,0,30);//通过rotate来旋转TvzHTML5中文学习网 - HTML5先行者学习网
greenGrad.addColorStop(0, '#059700'); TvzHTML5中文学习网 - HTML5先行者学习网
greenGrad.addColorStop(0.5, '#02e003'); TvzHTML5中文学习网 - HTML5先行者学习网
greenGrad.addColorStop(1, '#019a02');TvzHTML5中文学习网 - HTML5先行者学习网
TvzHTML5中文学习网 - HTML5先行者学习网
//绘制两弧夹角内容TvzHTML5中文学习网 - HTML5先行者学习网
drawCake(_context,0,yellowGrad,nRadius);TvzHTML5中文学习网 - HTML5先行者学习网
drawCake(_context,Math.PI/2,blueGrad,nRadius);TvzHTML5中文学习网 - HTML5先行者学习网
drawCake(_context,Math.PI,redGrad,nRadius);TvzHTML5中文学习网 - HTML5先行者学习网
drawCake(_context,3*Math.PI/2,greenGrad,nRadius);TvzHTML5中文学习网 - HTML5先行者学习网
//内圆颜色TvzHTML5中文学习网 - HTML5先行者学习网
var lingrad =_context.createLinearGradient(-30,-30,30,30);TvzHTML5中文学习网 - HTML5先行者学习网
lingrad.addColorStop(0, '#4672df'); TvzHTML5中文学习网 - HTML5先行者学习网
lingrad.addColorStop(0.2, '#6188e5'); TvzHTML5中文学习网 - HTML5先行者学习网
lingrad.addColorStop(0.5, '#98b1ef');TvzHTML5中文学习网 - HTML5先行者学习网
lingrad.addColorStop(0.8, '#b1c3f2');TvzHTML5中文学习网 - HTML5先行者学习网
lingrad.addColorStop(1, '#eaedfc');TvzHTML5中文学习网 - HTML5先行者学习网
_context.save();TvzHTML5中文学习网 - HTML5先行者学习网
_context.beginPath();//内圆TvzHTML5中文学习网 - HTML5先行者学习网
_context.fillStyle=lingrad;TvzHTML5中文学习网 - HTML5先行者学习网
_context.arc(0,0,nRadius-10,0,Math.PI*2,true); TvzHTML5中文学习网 - HTML5先行者学习网
_context.fill();TvzHTML5中文学习网 - HTML5先行者学习网
_context.closePath();TvzHTML5中文学习网 - HTML5先行者学习网
_context.restore();TvzHTML5中文学习网 - HTML5先行者学习网
//绘制三角TvzHTML5中文学习网 - HTML5先行者学习网
var trianglerad=_context.createLinearGradient(-6,-10,-6,10);TvzHTML5中文学习网 - HTML5先行者学习网
trianglerad.addColorStop(0, '#99d4ea'); TvzHTML5中文学习网 - HTML5先行者学习网
trianglerad.addColorStop(0.2, '#5e8fdd'); TvzHTML5中文学习网 - HTML5先行者学习网
trianglerad.addColorStop(0.5, '#0f17a1');TvzHTML5中文学习网 - HTML5先行者学习网
trianglerad.addColorStop(0.8, '#4c65cc');TvzHTML5中文学习网 - HTML5先行者学习网
trianglerad.addColorStop(1, '#7299e5');TvzHTML5中文学习网 - HTML5先行者学习网
_context.beginPath();TvzHTML5中文学习网 - HTML5先行者学习网
_context.fillStyle=trianglerad;TvzHTML5中文学习网 - HTML5先行者学习网
_context.moveTo(12,0);TvzHTML5中文学习网 - HTML5先行者学习网
_context.lineTo(-6,10);TvzHTML5中文学习网 - HTML5先行者学习网
_context.lineTo(-6,-10);TvzHTML5中文学习网 - HTML5先行者学习网
_context.fill();TvzHTML5中文学习网 - HTML5先行者学习网
_context.restore();TvzHTML5中文学习网 - HTML5先行者学习网
}TvzHTML5中文学习网 - HTML5先行者学习网
//绘画一个扇形TvzHTML5中文学习网 - HTML5先行者学习网
function drawCake(_context,_nRotateAngle,_fillColor,_nRadius){TvzHTML5中文学习网 - HTML5先行者学习网
_context.save();TvzHTML5中文学习网 - HTML5先行者学习网
_context.beginPath(); TvzHTML5中文学习网 - HTML5先行者学习网
_context.fillStyle=_fillColor;TvzHTML5中文学习网 - HTML5先行者学习网
_context.rotate(_nRotateAngle);TvzHTML5中文学习网 - HTML5先行者学习网
_context.moveTo(_nRadius-10,0);TvzHTML5中文学习网 - HTML5先行者学习网
_context.lineTo(_nRadius,0);//向右画一根线TvzHTML5中文学习网 - HTML5先行者学习网
_context.arc(0,0,_nRadius,0,Math.PI/2,false); TvzHTML5中文学习网 - HTML5先行者学习网
_context.lineTo(0,_nRadius-10);//向上画一个TvzHTML5中文学习网 - HTML5先行者学习网
_context.arc(0,0,_nRadius-10,Math.PI/2,0,true); //逆时针画内弧TvzHTML5中文学习网 - HTML5先行者学习网
_context.fill();TvzHTML5中文学习网 - HTML5先行者学习网
_context.closePath();TvzHTML5中文学习网 - HTML5先行者学习网
_context.restore();TvzHTML5中文学习网 - HTML5先行者学习网
}TvzHTML5中文学习网 - HTML5先行者学习网
</script>TvzHTML5中文学习网 - HTML5先行者学习网
</body>TvzHTML5中文学习网 - HTML5先行者学习网
</html>TvzHTML5中文学习网 - HTML5先行者学习网
TvzHTML5中文学习网 - HTML5先行者学习网

TvzHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助