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

javascript實現顏色漸變的方法

 更新時間:2013年10月30日 16:26:39   作者:  
這篇文章介紹了javascript實現顏色漸變的方法,有需要的朋友可以參考一下

漸變(Gradient)是美學中一條重要的形式美法則,與其相對應的是突變。形狀、大小、位置、方向、色彩等視覺因素都可以進行漸變。在色彩中,色相、明度、純度也都可以產生漸變效果,并會表現出具有豐富層次的美感。本文主要講述兩種顏色RGB數值的漸變算法。

已知:A=50,B=200,A、B之間平均分成3份(Step=3),求每份的數值(StepN)分別是多少。

公式:Gradient = A + (B-A) / Step * N

注]編程時為了提高效率避免浮點運算,往往把除法放在最后面,這樣公式就成了:Gradient = A + (B-A) * N / Step

Step=3時,根據公式可以求出Step1=A+(A-B)/3*1=50+(200-50)/3=100,Step2=A+(A-B)/3*2=50+(200-50)/3*2=150。這就是均勻漸變的算法原理了,很簡單,小學知識。

兩種顏色的漸變就是對兩種顏色的RGB通道分別進行這樣的計算,例如兩種顏色分別是RGB(200,50,0)和RGB(50,200,0),用上述公式進行計算就是:

RStep1=RA=RA+(BA-RA)/Step*N=200+(50-200)/3*1=200-50=150

GStep1=GA=GA+(GA-GA)/Step*N=50+(200-50)/3*1=50+50=100

BStep1=BA=BA+(BA-BA)/Step*N=0

因此RGBStep1=(150,100,0),同樣的方法可以求出RGBStep2=(100,150,0)。

網頁中的漸變文字特效就是這么做出來的。例如你的網頁HTML中有這么一句代碼:<span id=myText>你就是我天空里最美麗的彩虹</span>,在后面加入如下的代碼就可以實現漸變文字。(生成漸變的兩種顏色:#c597ff和#73e7a9)

復制代碼 代碼如下:

var ColorA = "#c597ff";
var ColorB = "#73e7a9";

// 顏色#FF00FF格式轉為Array(255,0,255)
function color2rgb(color)
{
 var r = parseInt(color.substr(1, 2), 16);
 var g = parseInt(color.substr(3, 2), 16);
 var b = parseInt(color.substr(5, 2), 16);
 return new Array(r, g, b);
}

// 顏色Array(255,0,255)格式轉為#FF00FF
function rgb2color(rgb)
{
 var s = "#";
 for (var i = 0; i < 3; i++)
 {
  var c = Math.round(rgb[i]).toString(16);
  if (c.length == 1)
   c = '0' + c;
  s += c;
 }
 return s.toUpperCase();
}

// 生成漸變
function gradient()
{
 var str = myText.innerText;
 var result = "";
 var Step = str.length - 1;

 var Gradient = new Array(3);
 var A = color2rgb(ColorA);
 var B = color2rgb(ColorB);

 for (var N = 0; N <= Step; N++)
 {
  for (var c = 0; c < 3; c++) // RGB通道分別進行計算
  {
   Gradient[c] = A[c] + (B[c]-A[c]) / Step * N;
  }
  result += "<font color=" + rgb2color(Gradient) +
   ">" + str.charAt(N) + "</font>";
 }
 myText.innerHTML = result;
}

gradient(); // 運行程序

A、B、C三種顏色或多種顏色的漸變,理論上講只要先把A、B進行漸變,再把B、C進行漸變,依此類推就行了。實踐過程中,為了使?jié)u變的每個像素顏色分布均勻,產生了多種插值算法,具體算法以后再討論吧。

相關文章

  • js里取容器大小、定位、距離等屬性搜集整理

    js里取容器大小、定位、距離等屬性搜集整理

    取容器大小、定位、距離等在實際中使用的比較廣泛,下面與大家分享下小編整理的js相關代碼,有此需求的朋友可以參考下,希望對大家有所幫助
    2013-08-08
  • JS實現轉動隨機數抽獎特效代碼

    JS實現轉動隨機數抽獎特效代碼

    這篇文章主要為大家詳細介紹了一款轉動隨機數抽獎的JS特效代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-08-08
  • javascript遍歷json對象的key和任意js對象屬性實例

    javascript遍歷json對象的key和任意js對象屬性實例

    下面小編就為大家?guī)硪黄猨avascript遍歷json對象的key和任意js對象屬性實例。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • JS將數字轉換成三位逗號分隔的樣式(示例代碼)

    JS將數字轉換成三位逗號分隔的樣式(示例代碼)

    本篇文章主要是對JS將數字轉換成三位逗號分隔的樣式(示例代碼)進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • 詳解Require.js與Sea.js的區(qū)別

    詳解Require.js與Sea.js的區(qū)別

    RequireJS 和 Sea.js 都是模塊加載器,倡導模塊化開發(fā)理念,核心價值是讓 JavaScript 的模塊化開發(fā)變得簡單自然。這篇文章給大家簡單介紹了Require.js與Sea.js的區(qū)別,感興趣的朋友一起看看吧
    2018-08-08
  • js簡單倒計時實現代碼

    js簡單倒計時實現代碼

    這篇文章主要介紹了js簡單倒計時實現代碼,涉及JavaScript時間與日期的相關運算技巧,需要的朋友可以參考下
    2016-04-04
  • js數組Array sort方法使用深入分析

    js數組Array sort方法使用深入分析

    js中Array.sort()方法是用來對數組項進行排序的,默認是升序排列sort() 方法可以接受一個 方法為參數,這個方法有兩個參數,接下來本例將對sort方法進行深入探討,感興趣的朋友可以參考下
    2013-02-02
  • 總結分享10個JavaScript代碼優(yōu)化小tips

    總結分享10個JavaScript代碼優(yōu)化小tips

    這篇文章主要介紹了總結分享10個JavaScript代碼優(yōu)化小tips,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • js使用cookie記錄用戶名的方法

    js使用cookie記錄用戶名的方法

    這篇文章主要介紹了js使用cookie記錄用戶名的方法,通過完整實例形式分析了JavaScript針對cookie的創(chuàng)建、賦值及刪除等操作技巧,以及通過cookie記錄用戶登錄信息的方法,需要的朋友可以參考下
    2015-11-11
  • JS動態(tài)顯示倒計時效果

    JS動態(tài)顯示倒計時效果

    這篇文章主要介紹了JS實現倒計時效果動態(tài)顯示倒計時功能,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12

最新評論

郁南县| 凌源市| 昆山市| 上虞市| 平乐县| 原阳县| 武穴市| 澄城县| 商丘市| 交城县| 彩票| 乐业县| 蓬莱市| 清河县| 麻江县| 长顺县| 珲春市| 南木林县| 溆浦县| 建平县| 大庆市| 仙居县| 东莞市| 凤山县| 渭南市| 金华市| 古交市| 山东省| 汝阳县| 黄山市| 巢湖市| 准格尔旗| 临安市| 英超| 河东区| 东安县| 宝兴县| 汶上县| 邯郸市| 太仆寺旗| 台北县|