Javacript实现颜色渐变的效果

原文地址:Javascript实现颜色渐变效果 
作者官网:胡旭个人博客 
对于本站的导航栏,想做点什么。所以,选择了用js对导航栏的颜色做了梯度的变化处理。 
起初,觉得用opacity属性(透明度)来改变颜色的梯度变化。不过,这样会出现一个问题。 
每一个导航标签用的是[li],当鼠标浮动到标签上时,通过onmouseover()立即改变[li]的className,并用setInterval()来使其opacity(透明度)由0变到1.不过,当鼠标离开时,对于[li]标签的颜色恢复的处理貌似麻烦了许多。所以,很快就放弃了这个做法,换种思路。 
到百度上一搜,看到了一篇很好的文章,地址为http://www.cnblogs.com/cloudgamer/archive/ 
2009/03/11/color.html。随之,进行了简化,找到了解决的办法。 
不如首先通过两个颜色值,比如"#FFFFFF"、"#CCCCCC",其中一个为起始颜色,另一个为终止颜色。通过处理,获取两种颜色在变化时的各种颜色字符串,并且字符串的个数,即获取的频率可以调节。返回给某个数组变量,代码如下:

/**

 * @Desc 该文件是改变颜色梯度的库 - colorGrad.js

 * @Author GenialX

 * @Date 2013.05.30

 * @QQ 2252065614

 * @URL http://www.ihuxu.com

 */



/** 

  * 改变颜色的入口函数 

  * beginColor/endColor均为形如#FFFFFF的十六进制的字符串,rate为渐变的速度

  * @return colorArray数组 形如#FFFFFF的字符串数组

  * 调用格式 changeColor("#FFFFFF","#000000",100);

  */

function getColorArray(bColor,eColor,r){

        //过渡中的颜色值,比如#FFFFFF

    var curColor = new Object();

    var beginColor = new Object();

    var endColor = new Object();

    var rate = new Object();

        //得到每个rgb增长的方向。true代表增加,false代表减少

    var isTrue = new Object();

    var colorArray = new Array();

    var i = 0;//数组下标



    beginColor = getRGB(bColor);//改变成ogj类型

    endColor = getRGB(eColor);//改变成ogj类型

    curColor = getRGB(bColor);

    rate = getRate(beginColor,endColor,r);

    isTrue = getIsTrue(beginColor,endColor)

全文地址:Javascript实现颜色渐变效果

你可能感兴趣的:(javac)