您的位置:首页 > Web前端 > JavaScript

利用递增的数字返回循环渐变的颜色的js函数

2008-10-21 23:43 477 查看
其实很久前就想写一个这样的函数了。因为很多时候需要利用递增数字返回一个渐变颜色序列,今天终于完成了。函数如下:

使用gCL就可以利用递增的数字返回由红到绿到蓝的渐变颜色了。渐变效果如下,共15种颜色,循环渐变:



比如下面的应用,使用这个函数可以将超级链接的背景色进行渐变:

<a id=a onmouseover='cancel=0;colorful()' onmouseout='cancel=1;' href="http://fine3x.com">主页</a>

<Script language=JScript>

<!--

function gCL(i){

var f=parseInt((i%15)/5);

i=i%15%5;

switch(f){

case 0:return "#"+cS2(255-i*51)+cS2(i*51)+"00";

case 1:return "#00"+cS2(255-i*51)+cS2(i*51);

case 2:return "#"+cS2(i*51)+"00"+cS2(255-i*51);

}

}

function cS2(i) {

var s=i.toString(16);

return ("00"+s).substr(s.length);

}

var a=document.getElementById('a')

var sd=0;

var cancel=0;

function colorful() {

a.style.backgroundColor=gCL(sd++);

if(!cancel)setTimeout('colorful()',50);

}

-->

</Script>

这个函数加以修改还可以产生更加细致的颜色变化,有兴趣的朋友可以试试。

function gCL(i){

var f=parseInt((i%15)/5);

i=i%15%5;

switch(f){

case 0:return "#"+cS2(255-i*51)+cS2(i*51)+"00";

case 1:return "#00"+cS2(255-i*51)+cS2(i*51);

case 2:return "#"+cS2(i*51)+"00"+cS2(255-i*51);

}

}

function cS2(i) {

var s=i.toString(16);

return ("00"+s).substr(s.length);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: