原创。产生的动画效果: *生成文字渐变颜色随时间的变化。 *使得一组同心圆的取色,随时间而变化 1. [图片] open_source.png 2. [代码] [JavaScript]代码 htmlheadscriptvar c=new Array("red","blue","cya
* 生成文字渐变颜色随时间的变化。
* 使得一组同心圆的取色,随时间而变化
1. [图片] open_source.png
2. [代码][JavaScript]代码
<html> <head> <script> var c=new Array("red","blue","cyan","darkGray","green","lightGrey","orange","pink","magenta","lightBlue","yellow","black"); var d =220; var x0=200; var y0=200; var ticker =0; //一组同心圆的取色,随 ticker 的递增而变化 var index=-595;//为文字设置渐变颜色,其范围随index变化而变。 var direction=1; function drawName(){ var canvas =document.getElementById("myCanvas"); var gg =canvas.getContext("2d"); var gradient=gg.createLinearGradient(index,0,600,0); if (direction==1) index = index + 5; else if (direction==0) index = index - 5; if (index==600) direction=0; if (index==-600) direction=1; for (var i=0;i<=10;i++)//设立渐变填色 gradient.addColorStop(i/10,c[i]); // 让画笔 gg 使用渐变填色 gg.fillStyle=gradient; gg.font ="100px KAITI"; gg.fillText("开源中国",20, 80); } function draw() { drawConcentric( 210, 300); } function drawConcentric( x0, y0){ var canvas =document.getElementById("myCanvas"); var gg =canvas.getContext("2d"); for (var i=1; i<11; i++){ gg.fillStyle=c[(i+ticker)%c.length];//取余,保证下标有效 gg.beginPath(); gg.arc(x0,y0, d - 20*i , 0, 2*Math.PI); gg.fill(); } ticker++; //一组同心圆的取色,随 ticker 的递增而变化 } function preparation(){; setInterval('drawConcentric(220,300)',500) setInterval('drawName()',50); } </script> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>同心圆</title> <style> #myCanvas{ width:900; height:600; position:absolute;left;0px;top;0px; } </style> </head> <body onLoad="preparation()"> <canvas id="myCanvas" width="980" height="650"> Your browser does not support the HTML5 canvas tag. </canvas> </body> </html>