jquery實(shí)現(xiàn)將獲取的顏色值轉(zhuǎn)換為十六進(jìn)制形式的方法
本文實(shí)例講述了jquery實(shí)現(xiàn)將獲取的顏色值轉(zhuǎn)換為十六進(jìn)制形式的方法。分享給大家供大家參考。具體分析如下:
大家或許已經(jīng)注意到了,在谷歌、火狐和IE8以上瀏覽器中,獲取的顏色值是RGB形式,例如rgb(255,255,0),感覺非常不適應(yīng),或者在實(shí)際編碼中不方便使用,這個(gè)時(shí)候就需要進(jìn)行轉(zhuǎn)換,下面就提供一段相關(guān)轉(zhuǎn)換代碼。
具體代碼如下:
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.dbjr.com.cn/" />
<title>顏色格式轉(zhuǎn)換-腳本之家</title>
<style type="text/css">
#thediv
{
width:200px;
height:100px;
background-color:#CCC;
line-height:100px;
text-align:center;
color:#60F;
}
</style>
<script type="text/javascript" src="jQuery/jquery-1.8.3.js"></script>
<script type="text/javascript">
$.fn.getHexBackgroundColor=function(id,property)
{
var rgb=$(id).css(property);
if($.browser.msie&&$.browser.version>8||$.browser.mozilla||$.browser.webkit)
{
rgb=rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
function hex(x)
{
return ("0"+parseInt(x).toString(16)).slice(-2);
}
rgb="#"+hex(rgb[1])+hex(rgb[2])+hex(rgb[3]);
}
return rgb;
}
$(document).ready(function(){
$("#bt").click(function(){
$("#thediv").text($.fn.getHexBackgroundColor("#thediv","color"))
})
})
</script>
</head>
<body>
<div id="thediv">腳本之家</div>
<input type="button" value="點(diǎn)擊查看效果" id="bt" />
</body>
</html>
注意:運(yùn)行編輯器之后,再按F5刷新網(wǎng)頁即可查看演示。
以上代碼實(shí)現(xiàn)了我們的要求,可以將RGB格式的顏色值轉(zhuǎn)換為十六進(jìn)制形式,下面就簡單介紹一下實(shí)現(xiàn)過程:
一.實(shí)現(xiàn)原理:
當(dāng)點(diǎn)擊按鈕的會(huì)觸發(fā)click事件,進(jìn)而執(zhí)行click事件處理函數(shù),此處理函數(shù)能夠?qū)⑥D(zhuǎn)換后的顏色值寫入div中去,其中的核心函數(shù)就是getHexBackgroundColor(),此函數(shù)首先會(huì)判斷瀏覽器是否是IE9之下,如果是則直接返回顏色值,不進(jìn)行轉(zhuǎn)換,因?yàn)樵贗E9以下瀏覽器獲取的顏色值就是16進(jìn)制的,如果是IE8以上瀏覽器或者谷歌火狐,則需要進(jìn)行轉(zhuǎn)換,關(guān)于轉(zhuǎn)換細(xì)節(jié)這里就不多介紹了,可以參考你代碼注釋。
二.代碼注釋:
1.$.fn.getHexBackgroundColor=function(id,property){},聲明一個(gè)函數(shù),此函數(shù)可以可以進(jìn)行顏色值轉(zhuǎn)換,此函數(shù)具有兩個(gè)參數(shù),第一個(gè)參數(shù)是元素的id屬性值,第二個(gè)是屬性。
2.var rgb=$(id).css(property),獲取顏色值,這個(gè)時(shí)候rgb也許是16進(jìn)制也許是RGB格式的。
3.if($.browser.msie&&$.browser.version>8||$.browser.mozilla||$.browser.webkit),判斷瀏覽器是否是IE8以上或者是火狐或者谷歌瀏覽器。
4.rgb=rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/),這個(gè)要對正則表達(dá)式有所了解,通過match()函數(shù)可以將顏色值字符串生成一個(gè)數(shù)組,這個(gè)數(shù)組中有4個(gè)元素,以rgb(102, 0, 255)作為例子,第一個(gè)元素是整個(gè)顏色值字符串rgb(102, 0, 255),第二個(gè)數(shù)組元素是102,第三個(gè)是0,第四個(gè)是255。
5.function hex(x){},聲明一個(gè)函數(shù),此函數(shù)可以用就是進(jìn)行顏色值轉(zhuǎn)換,具有一個(gè)參數(shù),傳遞的是rgb數(shù)組的某一項(xiàng)。
6.return ("0"+parseInt(x).toString(16)).slice(-2),可以將傳入數(shù)值轉(zhuǎn)換為16進(jìn)制,注意前面是添加了一個(gè)0,最好使用slice函數(shù)截取最后兩個(gè)字符,并返回截取的這兩個(gè)字符。
7.rgb="#"+hex(rgb[1])+hex(rgb[2])+hex(rgb[3]),將值組合起來。
8.return rgb,返回rgb這個(gè)值。
9.$(document).ready(function(){}),當(dāng)文檔結(jié)構(gòu)完全加載完畢再去執(zhí)行函數(shù)中的代碼。
10.$("#bt").click(function(){}),為按鈕注冊click事件處理桉樹。
11.$("#thediv").text($.fn.getHexBackgroundColor("#thediv","color")) ,將轉(zhuǎn)換后的顏色值寫入div。
三.相關(guān)閱讀:
1.瀏覽器版本判斷可以參閱《JavaScript 判斷瀏覽器類型及版本》。
2. parseInt()函數(shù)可以參閱《javascript中parseInt()函數(shù)的定義和用法分析》。
3.toString()函數(shù)可以參閱《javascript中Number對象的toString()方法分析》。
4.slice()函數(shù)可以參閱《javascript中String對象的slice()方法分析》。
5.click事件可以參閱《jQuery中click事件的定義和用法》。
6.text()函數(shù)可以參閱《jQuery的text()方法用法分析》。
希望本文所述對大家的jQuery程序設(shè)計(jì)有所幫助。
- 基于jQuery.Hz2Py.js插件實(shí)現(xiàn)的漢字轉(zhuǎn)拼音特效
- 通過jQuery打造支持漢字,拼音,英文快速定位查詢的超級select插件
- 基于jquery的使ListNav兼容中文首字拼音排序的實(shí)現(xiàn)代碼
- jquery中實(shí)現(xiàn)時(shí)間戳與日期相互轉(zhuǎn)換
- Jquery中增加參數(shù)與Json轉(zhuǎn)換代碼
- jquery 將當(dāng)前時(shí)間轉(zhuǎn)換成yyyymmdd格式的實(shí)現(xiàn)方法
- 淺析Js(Jquery)中,字符串與JSON格式互相轉(zhuǎn)換的示例(直接運(yùn)行實(shí)例)
- jquery如何把參數(shù)列嚴(yán)格轉(zhuǎn)換成數(shù)組實(shí)現(xiàn)思路
- jquery對象和DOM對象的任意相互轉(zhuǎn)換
- jquery對象和DOM對象的相互轉(zhuǎn)換詳解
- jQuery實(shí)現(xiàn)QQ空間漢字轉(zhuǎn)拼音功能示例
相關(guān)文章
jQuery實(shí)現(xiàn)炫麗的3d旋轉(zhuǎn)星空效果
這篇文章主要介紹了jQuery實(shí)現(xiàn)炫麗的3d旋轉(zhuǎn)星空效果,涉及jQuery數(shù)值運(yùn)算與頁面元素屬性動(dòng)態(tài)變換相關(guān)操作技巧,需要的朋友可以參考下2018-07-07JQuery查找子元素find()和遍歷集合each的方法總結(jié)
下面小編就為大家?guī)硪黄狫Query查找子元素find()和遍歷集合each的方法總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03jQuery初識之設(shè)計(jì)思想方法函數(shù)示例
這篇文章主要為大家介紹了jQuery初識之設(shè)計(jì)思想及方法函數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06實(shí)例解析jQuery插件EasyUI最常用的表單驗(yàn)證規(guī)則
這篇文章主要以實(shí)例解析了jQuery插件EasyUI最常用的驗(yàn)證規(guī)則,對EasyUI校驗(yàn)感興趣的小伙伴們可以參考一下2015-11-11