jquery实现将获取的颜色值转换为十六进制形式的方法


Posted in Javascript onDecember 20, 2014

本文实例讲述了jquery实现将获取的颜色值转换为十六进制形式的方法。分享给大家供大家参考。具体分析如下:

大家或许已经注意到了,在谷歌、火狐和IE8以上浏览器中,获取的颜色值是RGB形式,例如rgb(255,255,0),感觉非常不适应,或者在实际编码中不方便使用,这个时候就需要进行转换,下面就提供一段相关转换代码。

具体代码如下:

<!DOCTYPE html> 

<html> 

<head> 

<meta charset=" utf-8"> 

<meta name="author" content="https://3water.com/" /> 

<title>颜色格式转换-三水点靠木</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="点击查看效果" id="bt" /> 

</body> 

</html>

注意:运行编辑器之后,再按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以上或者是火狐或者谷歌浏览器。

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程序设计有所帮助。

Javascript 相关文章推荐
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
Dec 27 Javascript
自己的js工具 Event封装
Aug 21 Javascript
Dom与浏览器兼容性说明
Oct 25 Javascript
30分钟就入门的正则表达式基础教程
Feb 25 Javascript
JavaScript实现基于Cookie的存储类实例
Apr 10 Javascript
javascript学习笔记之函数定义
Jun 25 Javascript
jQuery+formdata实现上传进度特效遇到的问题
Feb 24 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
Jun 06 Javascript
微信小程序数据存储与取值详解
Jan 30 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
Jun 27 Javascript
还不懂递归?读完这篇文章保证你会懂
Jul 29 Javascript
原生js实现3D轮播图
Mar 21 Javascript
jQuery的text()方法用法分析
Dec 20 #Javascript
jQuery中click事件的定义和用法
Dec 20 #Javascript
javascript中String对象的slice()方法分析
Dec 20 #Javascript
javascript中Number对象的toString()方法分析
Dec 20 #Javascript
javascript中parseInt()函数的定义和用法分析
Dec 20 #Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
Dec 20 #Javascript
node.js解决获取图片真实文件类型的问题
Dec 20 #Javascript
You might like
DC四月将推出百页特刊漫画 纪念小丑诞生80周年
2020/04/09 欧美动漫
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
php Undefined index的问题
2009/06/01 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
2020/04/05 PHP
php实现计数器方法小结
2015/01/05 PHP
php实现的rc4加密解密类定义与用法示例
2018/08/16 PHP
PHP中使用mpdf 导出PDF文件的实现方法
2018/10/22 PHP
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
IE6已终止操作问题的2种情况及解决
2014/04/23 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
AspNet中使用JQuery上传插件Uploadify详解
2015/05/20 Javascript
论JavaScript模块化编程
2016/03/07 Javascript
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
Vue scoped及deep使用方法解析
2020/08/01 Javascript
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
python开发的小球完全弹性碰撞游戏代码
2013/10/15 Python
python实现清屏的方法
2015/04/30 Python
Python 备份程序代码实现
2017/03/06 Python
python3实现抓取网页资源的 N 种方法
2017/05/02 Python
Python3 单行多行万能正则匹配方法
2019/01/07 Python
Pandas聚合运算和分组运算的实现示例
2019/10/17 Python
Python如何省略括号方法详解
2020/03/21 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
python把一个字符串切开的实例方法
2020/09/27 Python
Pytorch如何切换 cpu和gpu的使用详解
2021/03/01 Python
阿里旅行:飞猪
2017/01/05 全球购物
init进程的作用
2012/04/12 面试题
经济信息管理专业大学生求职信
2013/09/27 职场文书
应届毕业生求职信范文
2014/05/08 职场文书
食品安全宣传标语
2014/06/07 职场文书
小学班长竞选稿
2015/11/20 职场文书
python 解决微分方程的操作(数值解法)
2021/05/26 Python
SpringBoot整合Minio文件存储
2022/04/03 Java/Android