最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2009年03月15日 21:15:07   作者:  
程序ColorGrads的作用是通過StartColor和EndColor生成顏色梯度集合。
程序說明
【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統(tǒng)一返回RGB顏色模式的第三種形式,ie則按照設置時的形式返回。
先說說RGB顏色模式,前兩種比較常用應該都明白他們的區(qū)別吧,它用的是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); }
)

而關鍵詞大家都很熟悉,要轉化卻很麻煩,因為沒有一定規(guī)律只能一個一個對應:
復制代碼 代碼如下:

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創(chuàng)建顏色集合程序中獲得開始顏色和結束顏色的數據后,再根據Step(多少步)就可以獲得步長了:
復制代碼 代碼如下:

startColor = this.GetColor(this.StartColor),
endColor = this.GetColor(this.EndColor),
stepR = (endColor[0] - startColor[0]) / this.Step,
stepG = (endColor[1] - startColor[1]) / this.Step,
stepB = (endColor[2] - startColor[2]) / this.Step;

再根據步長生成集合:
復制代碼 代碼如下:

for(var i = 0, n = this.Step, r = startColor[0], g = startColor[1], b = startColor[2]; i < n; i++){
colors.push([r, g, b]); r += stepR; g += stepG; b += stepB;
}
colors.push(endColor);

正確的顏色值是在0到255之間的,而且是不帶小數的,所以最好修正一下:
復制代碼 代碼如下:

return Map(colors, function(x){ return Map(x, function(x){
return Math.min(Math.max(0, Math.floor(x)), 255);
});});

相關文章

  • 淺析JavaScript中的平穩(wěn)退化(graceful degradation)

    淺析JavaScript中的平穩(wěn)退化(graceful degradation)

    所謂平穩(wěn)退化,就是指可以讓訪問者在瀏覽器不支持javascript或者禁用了JavaScript的時候依舊可以順利的瀏覽你的網頁,下文給大家簡單介紹了js中的平穩(wěn)退化,感興趣的朋友一起看看吧
    2017-07-07
  • js實現本地時間同步功能

    js實現本地時間同步功能

    這篇文章主要為大家詳細介紹了js實現本地時間同步功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 原生JS forEach()和map()遍歷的區(qū)別、兼容寫法及jQuery $.each、$.map遍歷操作

    原生JS forEach()和map()遍歷的區(qū)別、兼容寫法及jQuery $.each、$.map遍歷操作

    這篇文章主要介紹了原生JS forEach()和map()遍歷的區(qū)別、兼容寫法及jQuery $.each、$.map遍歷操作,結合實例形式分析了JS使用forEach()和map()以及jQuery使用$.each、$.map進行遍歷操作相關技巧與操作注意事項,需要的朋友可以參考下
    2019-02-02
  • JS截取字符串常用方法整理及使用示例

    JS截取字符串常用方法整理及使用示例

    截取字符串的方法有很多,在使用過程中根據自己的實際需求進行選擇,下面整理了一些常用的方法及使用示例,感興趣的朋友可以了解下
    2013-10-10
  • JavaScript自動內存管理與垃圾回收策略詳細分析講解

    JavaScript自動內存管理與垃圾回收策略詳細分析講解

    JS的垃圾回收機制是為了以防內存泄漏,內存泄漏的含義就是當已經不需要某塊內存時這塊內存還存在著,垃圾回收機制就是間歇的不定期的尋找到不再使用的變量,并釋放掉它們所指向的內存。因為內存的大小是有限的,所以當內存不再需要的時候,我們需要對其進行釋放
    2023-01-01
  • JS根據當天不同時間顯示不同廣告的代碼

    JS根據當天不同時間顯示不同廣告的代碼

    這篇文章主要介紹了JS根據當天不同的時間段顯示不同廣告的代碼,可以精確到小時當然如果分鐘都可以判斷出來,需要的朋友可以參考下
    2023-02-02
  • 微信小程序實現五子棋游戲

    微信小程序實現五子棋游戲

    這篇文章主要為大家詳細介紹了微信小程序實現五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • TableSort.js表格排序插件使用方法詳解

    TableSort.js表格排序插件使用方法詳解

    這篇文章主要為大家詳細介紹了TableSort.js表格排序插件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • 支持移動端原生js輪播圖

    支持移動端原生js輪播圖

    這篇文章主要介紹了支持移動端原生js輪播圖的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • JavaScript如何刪除對象的某個屬性詳析

    JavaScript如何刪除對象的某個屬性詳析

    這篇文章主要給大家介紹了關于JavaScript如何刪除對象的某個屬性的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05

最新評論

江阴市| 宜宾市| 石棉县| 兰考县| 昌吉市| 湖南省| 耿马| 延津县| 天津市| 通渭县| 蒲江县| 象州县| 来宾市| 于都县| 秦安县| 水城县| 高清| 平远县| 延寿县| 榆社县| 台南市| 巴青县| 兴和县| 泽库县| 武宁县| 云浮市| 盐边县| 宜兰县| 礼泉县| 晋江市| 綦江县| 台湾省| 基隆市| 彭阳县| 临沧市| 达日县| 麦盖提县| 曲松县| 台江县| 高尔夫| 柏乡县|