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库 开发规则
Jan 31 Javascript
JQuery浮动DIV提示信息并自动隐藏的代码
Aug 29 Javascript
jQuery实现form表单reset按钮重置清空表单功能
Dec 18 Javascript
jquery入门—编写一个导航条(可伸缩)
Jan 07 Javascript
Ext JS添加子组件的误区探讨
Jun 28 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
Sep 15 Javascript
js 高效去除数组重复元素示例代码
Dec 19 Javascript
jscript读写二进制文件的方法
Apr 22 Javascript
jQuery学习笔记之Ajax用法实例详解
Dec 01 Javascript
JavaScript中的高级函数
Jan 04 Javascript
vue项目打包部署_nginx代理访问方法详解
Sep 20 Javascript
vue在响应头response中获取自定义headers操作
Jul 24 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
如何做到多笔资料的同步
2006/10/09 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
php返回字符串中所有单词的方法
2015/03/09 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
PHP PDOStatement::closeCursor讲解
2019/01/30 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
thinkphp5框架路由原理与用法详解
2020/02/11 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
2020/04/14 PHP
MooTools 1.2介绍
2009/09/14 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
javascript实现查找数组中最大值方法汇总
2016/02/13 Javascript
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
2019/04/29 NodeJs
layui 富文本图片上传接口与普通按钮 文件上传接口的例子
2019/09/23 Javascript
微信小程序如何实现在线客服功能
2019/10/16 Javascript
微信小程序自定义扫码功能界面的实现代码
2020/07/02 Javascript
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
2014/07/11 Python
Python中optionParser模块的使用方法实例教程
2014/08/29 Python
Python数据分析之如何利用pandas查询数据示例代码
2017/09/01 Python
Python异常处理知识点总结
2019/02/18 Python
Python 通过监听端口实现唯一脚本运行方式
2020/05/05 Python
Python基于内置函数type创建新类型
2020/10/22 Python
python用700行代码实现http客户端
2021/01/14 Python
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
社区创先争优承诺书
2014/08/30 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
酒会开场白大全
2015/06/01 职场文书
企业财务管理制度范本
2015/08/04 职场文书
装修安全责任协议书
2016/03/22 职场文书
如何理解Vue简单状态管理之store模式
2021/05/15 Vue.js
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
python用海龟绘图写贪吃蛇游戏
2021/06/18 Python
MySQL 数据类型详情
2021/11/11 MySQL
MySQL安装失败的原因及解决步骤
2022/06/14 MySQL