Javacript實(shí)現(xiàn)顏色梯度變化和漸變的效果代碼
更新時(shí)間:2013年05月31日 17:24:59 作者:
用js對(duì)導(dǎo)航欄的顏色做了梯度的變化處理,通過(guò)處理..獲取兩種顏色在變化時(shí)的各種顏色字符串,并且字符串的個(gè)數(shù),即獲取的頻率可以調(diào)節(jié)
對(duì)于本站的導(dǎo)航欄,想做點(diǎn)什么。所以,選擇了用js對(duì)導(dǎo)航欄的顏色做了梯度的變化處理。
起初,覺(jué)得用opacity屬性(透明度)來(lái)改變顏色的梯度變化。不過(guò),這樣會(huì)出現(xiàn)一個(gè)問(wèn)題。
每一個(gè)導(dǎo)航標(biāo)簽用的是[li],當(dāng)鼠標(biāo)浮動(dòng)到標(biāo)簽上時(shí),通過(guò)onmouseover()立即改變[li]的className,并用setInterval()來(lái)使其opacity(透明度)由0變到1.不過(guò),當(dāng)鼠標(biāo)離開時(shí),對(duì)于[li]標(biāo)簽的顏色恢復(fù)的處理貌似麻煩了許多。所以,很快就放棄了這個(gè)做法,換種思路。
到百度上一搜,看到了一篇很好的文章,地址為http://www.cnblogs.com/cloudgamer/archive/
2009/03/11/color.html。隨之,進(jìn)行了簡(jiǎn)化,找到了解決的辦法。
不如首先通過(guò)兩個(gè)顏色值,比如"#FFFFFF"、"#CCCCCC",其中一個(gè)為起始顏色,另一個(gè)為終止顏色。通過(guò)處理,獲取兩種顏色在變化時(shí)的各種顏色字符串,并且字符串的個(gè)數(shù),即獲取的頻率可以調(diào)節(jié)。返回給某個(gè)數(shù)組變量,代碼如下:
/**
* @Desc 該文件是改變顏色梯度的庫(kù) - colorGrad.js
* @Author GenialX
* @Date 2013.05.30
* @QQ 2252065614
* @URL http://www.ihuxu.com
*/
/**
* 改變顏色的入口函數(shù)
* beginColor/endColor均為形如#FFFFFF的十六進(jìn)制的字符串,rate為漸變的速度
* @return colorArray數(shù)組 形如#FFFFFF的字符串?dāng)?shù)組
* 調(diào)用格式 changeColor("#FFFFFF","#000000",100);
*/
function getColorArray(bColor,eColor,r){
//過(guò)渡中的顏色值,比如#FFFFFF
var curColor = new Object();
var beginColor = new Object();
var endColor = new Object();
var rate = new Object();
//得到每個(gè)rgb增長(zhǎng)的方向。true代表增加,false代表減少
var isTrue = new Object();
var colorArray = new Array();
var i = 0;//數(shù)組下標(biāo)
beginColor = getRGB(bColor);//改變成ogj類型
endColor = getRGB(eColor);//改變成ogj類型
curColor = getRGB(bColor);
rate = getRate(beginColor,endColor,r);
isTrue = getIsTrue(beginColor,endColor)
起初,覺(jué)得用opacity屬性(透明度)來(lái)改變顏色的梯度變化。不過(guò),這樣會(huì)出現(xiàn)一個(gè)問(wèn)題。
每一個(gè)導(dǎo)航標(biāo)簽用的是[li],當(dāng)鼠標(biāo)浮動(dòng)到標(biāo)簽上時(shí),通過(guò)onmouseover()立即改變[li]的className,并用setInterval()來(lái)使其opacity(透明度)由0變到1.不過(guò),當(dāng)鼠標(biāo)離開時(shí),對(duì)于[li]標(biāo)簽的顏色恢復(fù)的處理貌似麻煩了許多。所以,很快就放棄了這個(gè)做法,換種思路。
到百度上一搜,看到了一篇很好的文章,地址為http://www.cnblogs.com/cloudgamer/archive/
2009/03/11/color.html。隨之,進(jìn)行了簡(jiǎn)化,找到了解決的辦法。
不如首先通過(guò)兩個(gè)顏色值,比如"#FFFFFF"、"#CCCCCC",其中一個(gè)為起始顏色,另一個(gè)為終止顏色。通過(guò)處理,獲取兩種顏色在變化時(shí)的各種顏色字符串,并且字符串的個(gè)數(shù),即獲取的頻率可以調(diào)節(jié)。返回給某個(gè)數(shù)組變量,代碼如下:
復(fù)制代碼 代碼如下:
/**
* @Desc 該文件是改變顏色梯度的庫(kù) - colorGrad.js
* @Author GenialX
* @Date 2013.05.30
* @QQ 2252065614
* @URL http://www.ihuxu.com
*/
/**
* 改變顏色的入口函數(shù)
* beginColor/endColor均為形如#FFFFFF的十六進(jìn)制的字符串,rate為漸變的速度
* @return colorArray數(shù)組 形如#FFFFFF的字符串?dāng)?shù)組
* 調(diào)用格式 changeColor("#FFFFFF","#000000",100);
*/
function getColorArray(bColor,eColor,r){
//過(guò)渡中的顏色值,比如#FFFFFF
var curColor = new Object();
var beginColor = new Object();
var endColor = new Object();
var rate = new Object();
//得到每個(gè)rgb增長(zhǎng)的方向。true代表增加,false代表減少
var isTrue = new Object();
var colorArray = new Array();
var i = 0;//數(shù)組下標(biāo)
beginColor = getRGB(bColor);//改變成ogj類型
endColor = getRGB(eColor);//改變成ogj類型
curColor = getRGB(bColor);
rate = getRate(beginColor,endColor,r);
isTrue = getIsTrue(beginColor,endColor)
您可能感興趣的文章:
- Java按時(shí)間梯度實(shí)現(xiàn)異步回調(diào)接口的方法
- Java多線程之火車售票系統(tǒng)
- java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
- java實(shí)現(xiàn)可視化界面肯德基(KFC)點(diǎn)餐系統(tǒng)代碼實(shí)例
- java實(shí)現(xiàn)簡(jiǎn)單的學(xué)生信息管理系統(tǒng)代碼實(shí)例
- Java吃貨聯(lián)盟訂餐系統(tǒng)代碼實(shí)例
- java實(shí)現(xiàn)酒店管理系統(tǒng)
- 基于Java的電梯系統(tǒng)實(shí)現(xiàn)過(guò)程
相關(guān)文章
JavaScript中的函數(shù)聲明和函數(shù)表達(dá)式區(qū)別淺析
這篇文章主要介紹了JavaScript中的函數(shù)聲明和函數(shù)表達(dá)式區(qū)別淺析,本文總結(jié)的淺顯易懂,非常好的一篇技術(shù)文章,需要的朋友可以參考下2015-03-03JS數(shù)組方法reverse()用法實(shí)例分析
這篇文章主要介紹了JS數(shù)組方法reverse()用法,結(jié)合實(shí)例形式分析了JS數(shù)組reverse()方法基本功能、用法與操作注意事項(xiàng),需要的朋友可以參考下2020-01-01微信小程序?qū)崿F(xiàn)菜單左右聯(lián)動(dòng)
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)菜單左右聯(lián)動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05JavaScript中SQL語(yǔ)句的應(yīng)用實(shí)現(xiàn)
最近一直在用javascript在做項(xiàng)目 可是做著做著 感覺(jué)很多功能代碼都是重復(fù)的。2010-05-05