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 相关文章推荐
JavaScript 模拟用户单击事件
Dec 31 Javascript
JavaScript性能陷阱小结(附实例说明)
Dec 28 Javascript
JQuery 返回布尔值Is()条件判断方法代码
May 14 Javascript
javascript中强制执行toString()具体实现
Apr 27 Javascript
将form表单中的元素转换成对象的方法适用表单提交
May 02 Javascript
浅析JavaScript基本类型与引用类型
May 28 Javascript
jQuery 实现侧边浮动导航菜单效果
Dec 26 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
Jun 22 Javascript
Angular 开发学习之Angular CLI的安装使用
Dec 31 Javascript
vue element table 表格请求后台排序的方法
Sep 28 Javascript
react koa rematch 如何打造一套服务端渲染架子
Jun 26 Javascript
怎么理解wx.navigateTo的events参数使用详情
May 18 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
PHP中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
第4章 数据处理-php数组的处理-郑阿奇
2011/07/04 PHP
ThinkPHP中的关联模型注意点
2014/06/16 PHP
浅析php单例模式
2014/11/25 PHP
PHP中返回引用类型的方法
2015/04/03 PHP
Yii2框架加载css和js文件的方法分析
2019/05/25 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
2019/06/25 PHP
解决jquery的datepicker的本地化以及Today问题
2012/05/23 Javascript
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
控制input输入框中提示信息的显示和隐藏的方法
2014/02/12 Javascript
jQuery中:first选择器用法实例
2014/12/30 Javascript
酷炫jQuery全屏3D焦点图动画效果
2016/03/22 Javascript
JS HTML5实现拖拽移动列表效果
2020/08/27 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
2017/05/01 Javascript
Node.js assert断言原理与用法分析
2019/01/04 Javascript
关于vue的npm run dev和npm run build的区别介绍
2019/01/14 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
JS实现拼图游戏
2021/01/29 Javascript
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
关于javascript中的promise的用法和注意事项(推荐)
2021/01/15 Javascript
python发送arp欺骗攻击代码分析
2014/01/16 Python
在DigitalOcean的服务器上部署flaskblog应用
2015/12/19 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
2016/04/26 HTML / CSS
实验教师岗位职责
2014/02/13 职场文书
公司聘任书模板
2014/03/29 职场文书
贷款委托书范本
2014/04/08 职场文书
体育运动口号
2014/06/09 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
乌镇导游词
2015/02/02 职场文书
2015年行政管理人员工作总结
2015/10/15 职场文书
JS ES6异步解决方案
2021/04/29 Javascript
MySQL官方导出工具mysqlpump的使用
2021/05/21 MySQL
浅谈Redis的事件驱动模型
2022/05/30 Redis
教你nginx跳转配置的四种方式
2022/07/07 Servers