国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript 顏色梯度和漸變效果第1/3頁

2024-05-06 14:15:56
字體:
來源:轉載
供稿:網友
程序說明
【ColorGrads顏色梯度】
程序ColorGrads的作用是通過StartColor和EndColor生成顏色梯度集合。
顏色都可以用紅(r)、綠(g)、藍(b)三個顏色來表示。
程序中先通過GetColor把一般的顏色表示形式轉化成一個用紅(r)、綠(g)、藍(b)三個顏色值作元素的集合。
那就首先要知道有什么顏色表示形式,從w3c的Colors部分可以知道有以下形式:
關鍵詞模式:
em { color: red }
RGB顏色模式:
em { color: #f00 }
em { color: #ff0000 }
em { color: rgb(255,0,0) }
em { color: rgb(100%, 0%, 0%) }
以上都是表示同一種顏色(紅色)。
獲取顏色屬性的形式在ie和ff并不同,ff統一返回RGB顏色模式的第三種形式,ie則按照設置時的形式返回。
先說說RGB顏色模式,前兩種比較常用應該都明白他們的區別吧,它用的是16進制表示形式,而我們想要10進制的。
把一個16進制表示的字符轉成10進制數字,一般用parseInt,在substr截取字符之后就可以用parseInt轉換。
對于#ff0000這個形式可以這樣轉換:
代碼如下:
return Map([color.substr(1, 2), color.substr(3, 2), color.substr(5, 2)],
function(x){ return parseInt(x, 16); }
)

parseInt的第二個參數就是第一個參數的進制值。
對于#f00形式,跟上一個差不多,只是轉換之前要先換成完整表示形式:
代碼如下:
return Map([color.substr(1, 1), color.substr(2, 1), color.substr(3, 1)],
function(x){ return parseInt(x + x, 16); }
)

后面兩種可能用的就比較少了,一個用10進制的rgb顏色值表示,另一個用百分比來表示。
ff嚴格按照那樣的格式來表示,而ie就“放松”很多,例如:
ie可以允許數字百分比混用,ff不可以;
ff必須有逗號分隔,ie可以只用空格分隔;
當然我們使用時最好是按照w3c的標準來設置了。
ps:那個DHTML 手冊上寫的 EM { color: rgb 1.0 0.0 0.0 } 根本不能用的,不要被誤導了。
對這個形式,程序用正則取得數值,如果有%就根據百分比計算出對應數值:
代碼如下:
return Map(color.match(//d+(/./d+)?/%?/g),
function(x){ return parseInt(x.indexOf("%") > 0 ? parseFloat(x, 10) * 2.55 : x, 10); }
)

而關鍵詞大家都很熟悉,要轉化卻很麻煩,因為沒有一定規律只能一個一個對應:
代碼如下:
var mapping = {"red":"#FF0000"};//略
color = mapping[color.toLowerCase()];
if(color){
return Map([color.substr(1, 2), color.substr(3, 2), color.substr(5, 2)],
function(x){ return parseInt(x, 16); }
)
}

在Create創建顏色集合程序中獲得開始顏色和結束顏色的數據后,再根據Step(多少步)就可以獲得步長了:
代碼如下:
startColor = this.GetColor(this.StartColor),
endColor = this.GetColor(this.EndColor),
stepR = (endColor[0] - startColor[0]) / this.Step,
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 北辰区| 赫章县| 沂源县| 五莲县| 吉林省| 岳普湖县| 吉木乃县| 哈巴河县| 太原市| 泰安市| 新余市| 麻江县| 商丘市| 宁安市| 健康| 南汇区| 大埔县| 洮南市| 富平县| 兰西县| 分宜县| 建瓯市| 鹿邑县| 南澳县| 亚东县| 满城县| 玉龙| 介休市| 哈尔滨市| 四平市| 三亚市| 麦盖提县| 石城县| 三穗县| 长海县| 政和县| 政和县| 娄烦县| 曲水县| 赫章县| 新昌县|