首頁 > web前端 > js教程 > jquery實作將取得的顏色值轉換為十六進位形式的方法_jquery

jquery實作將取得的顏色值轉換為十六進位形式的方法_jquery

WBOY
發布: 2016-05-16 16:25:26
原創
1335 人瀏覽過

本文實例講述了jquery實作將取得的顏色值轉換為十六進位形式的方法。分享給大家供大家參考。具體分析如下:

大家或許已經注意到了,在Google、火狐和IE8以上瀏覽器中,獲取的顏色值是RGB形式,例如rgb(255,255,0),感覺非常不適應,或者在實際編碼中不方便使用,這時候就需要轉換,以下就提供一段相關轉換程式碼。

具體程式碼如下:

複製程式碼 程式碼如下:





顏色格式轉換-腳本之家 


 


腳本家



注意:執行編輯器之後,再按F5刷新網頁即可查看示範。

以上程式碼實現了我們的要求,可以將RGB格式的顏色值轉換為十六進位形式,以下就簡單介紹一下實作過程:

一.實現原理:

當點擊按鈕的會觸發click事件,進而執行click事件處理函數,此處理函數能夠將轉換後的顏色值寫入div中去,其中的核心函數就是getHexBackgroundColor(),此函數首先會判斷瀏覽器是否是IE9之下,如果是則直接返回顏色值,不進行轉換,因為在IE9以下瀏覽器獲取的顏色值就是16進制的,如果是IE8以上瀏覽器或者谷歌火狐,則需要進行轉換,關於轉換細節這裡就不多介紹了,可以參考你程式碼註解。

二.程式碼註解:

1.$.fn.getHexBackgroundColor=function(id,property){},宣告一個函數,此函數可以可以進行顏色值轉換,此函數有兩個參數,第一個參數是元素的id屬性值,第二個是屬性。

2.var rgb=$(id).css(property),取得顏色值,這時候rgb也許是16進位也許是RGB格式的。

3.if($.browser.msie&&$.browser.version>8||$.browser.mozilla||$.browser.webkit),判斷瀏覽器是否是IE8以上或是火狐或Google瀏覽器。

4.rgb=rgb.match(/^rgb((d ),s*(d ),s*(d ))$/),這個要對正則表達式有所了解,透過match()函數可以將顏色值字串產生一個數組,這個數組中有4個元素,以rgb(102, 0, 255)作為例子,第一個元素是整個顏色值字串rgb(102, 0, 255),第二個陣列元素是102,第三個是0,第四個是255。

5.function hex(x){},宣告一個函數,此函數可以用就是進行顏色值轉換,具有一個參數,傳遞的是rgb數組的某一項。

6.return ("0" parseInt(x).toString(16)).slice(-2),可以將傳入數值轉換為16進制,注意前面是增加了一個0,最好使用slice函數截取最後兩個字符,並傳回截取的這兩個字符。

7.rgb="#" hex(rgb[1]) hex(rgb[2]) hex(rgb[3]),將數值組合起來。

8.return rgb,回傳rgb這個值。

9.$(document).ready(function(){}),當文檔結構完全載入完畢再去執行函數中的程式碼。

10.$("#bt").click(function(){}),為按鈕註冊click事件處理桉樹。

11.$("#thediv").text($.fn.getHexBackgroundColor("#thediv","color")) ,將轉換後的顏色值寫入div。

三.相關閱讀:

1.瀏覽器版本判斷可以參考《JavaScript 判斷瀏覽器類型及版本》。
2. parseInt()函數可以參考《javascript中parseInt()函數的定義與用法分析》。
3.toString()函數可以參考《javascript中Number物件的toString()方法分析》。
4.slice()函數可以參考《javascript中String物件的slice()方法分析》。
5.click事件可以參考《jQuery中click事件的定義與用法》。
6.text()函數可以參考《jQuery的text()方法用法分析》。

希望本文所述對大家的jQuery程式設計有所幫助。

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板