JS实现颜色值的转换
从网上看了个案例,是实现颜色值转换的,就想着自己也写个。网上的案例链接找不到了,这里也就不贴了。
JavaScript颜色转换的核心就是进制间的转换。
rgba(0,0,0,.4)转换成#000000,就是Number.toString(16)
#ffffff转换成rgb(255,255,255),就是parseInt(String,16)
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" Content="text/html; charset=utf-8;">
<title>JS-颜色值的转换</title>
<meta name="author" content="rainna" />
<meta name="keywords" content="rainna's js lib" />
<meta name="description" content="js" />
<style>
*{margin:0;padding:0;}
body{background:#f0f0f0;}
h2{margin:0 0 20px;}
input{width:300px;height:24px;line-height:24px;} .m-box{width:900px;margin:0 auto;padding:20px;}
</style>
</head> <body>
<div class="m-box">
<h2>RGB(A)颜色转换为HEX十六进制的颜色值</h2>
<div class="box1">
<input type="text" id="colorIpt1" value="rgba(0,0,0,.4)"/>
<a href="#" id="link1">转换</a>
<input type="text" id="colorIpt2"/>
</div>
</div> <div class="m-box">
<div class="box1">
<input type="text" id="colorIpt3" value="#ffffff"/>
<a href="#" id="link2">转换</a>
<input type="text" id="colorIpt4"/>
</div>
</div> <script>
var colorChange = {
rgbToHex:function(val){ //RGB(A)颜色转换为HEX十六进制的颜色值
var r, g, b, a,
regRgba = /rgba?\((\d{1,3}),(\d{1,3}),(\d{1,3})(,([.\d]+))?\)/, //判断rgb颜色值格式的正则表达式,如rgba(255,20,10,.54)
rsa = val.replace(/\s+/g,'').match(regRgba);
if(!!rsa){
r = parseInt(rsa[1]).toString(16);
r = r.length == 1 ? '0' + r : r;
g = (+rsa[2]).toString(16);
g = g.length == 1 ? '0' + g : g;
b = (+rsa[3]).toString(16);
b = b.length == 1 ? '0' + b : b;
a = (+(rsa[5] ? rsa[5] : 1)) * 100;
return {hex:'#' + r + g + b, alpha: Math.ceil(a)};
}else{
return {hex:val, alpha:100};
}
},
hexToRgb:function(val){ //HEX十六进制颜色值转换为RGB(A)颜色值
var a,b,c;
if((/^#/g).test(val)){
a = val.slice(1,3);
b = val.slice(3,5);
c = val.slice(5,7);
return {rgba:'rgb(' + parseInt(a,16) + ',' + parseInt(b,16) + ',' + parseInt(c,16) + ')'};
}else{
return {rgba:'无效值:' + val};
}
}
}; link1.onclick = function(){
var obj = colorChange.rgbToHex(document.getElementById('colorIpt1').value);
document.getElementById('colorIpt2').value = '颜色值:' + obj.hex + ',透明度:' + obj.alpha + '%';
};
link2.onclick = function(){
var obj = colorChange.hexToRgb(document.getElementById('colorIpt3').value);
document.getElementById('colorIpt4').value = '颜色值:' + obj.rgba;
};
</script>
</body>
</html>
JS实现颜色值的转换的更多相关文章
- JSON字符串和JS对象之间的转换
JSON字符串和JS对象之间的转换 1 json字符串转换为js对象 1.1 标准json格式字符串转换为Js对象 JSON字符串 str JSON.parse(str) eval(str) eva ...
- js 的强制 类型 转换cast, 伪对象?
拼音输入法简单快捷, 但是重码多, 所以要看清了再选择, 不然会影响输入正确性和 心情的! js的类型 隐式 转换? 是指, 根据 表达式的操作符号 如if(), + , && , j ...
- js如何把字符串转换成json数据的方法
js如何把字符串转换成json数据的方法 function strtojson(str){ var json = eval('(' + str + ')'); return json; } 方法二 f ...
- js中的时间转换—毫秒转换成日期时间
转自:http://www.javascript100.com/?p=181 前几天,在项目中遇到js时间增加问题,要将js毫秒时间转换成日期时间 var oldTime = (new Date(&q ...
- JS将/Date(1446704778000)/转换成str
JS将/Date(1446704778000)/转换成str:var dateStr = eval(ele.add_time.replace(/\/Date\((\d+)\)\//gi, " ...
- 小tips:JS数值之间的转换,JS中最大的Number是多少?,JS == 与 === 的区别
JS数值之间的转换 Number(), parseInt(),parseFloat() Number()函数的转换规则如下: 1.如果boolean值,true和false将分别被转换为1和02.如果 ...
- js数据类型隐式转换问题
js数据类型隐式转换 ![] == false //true 空数组和基本类型转换,会先[].toString() 再继续比较 ![] == [] //true ![] //false [] == [ ...
- JS中应用正则表达式转换大小写
JS中应用正则表达式转换大小写,代码很简单,看代码: 以下首字母大写,其它字母小写 <script type="text/javascript"> function r ...
- JQuery学习:jquery对象和js对象区别和转换
JQuery对象与JS对象区别与转换 1.JQuery对象在操作时,更加方便 2.JQuery对象和js对象方法不通用 3.两者相互转换 * jq -- > js:jq对象[索引] 或者 ...
随机推荐
- Java之fianl修饰符
fianl修饰的变量不可以改变,一旦获得初始值,该final变量的值就不能被重新赋值. 1.final成员变量(必需由程序员显式地指定初始值) 类变量:必须在静态初始化块中或者声明该变量时指定初始值, ...
- PHP实例学习之————MVC架构模式分析与设计
写博客,不容易,你们的评论和转载,就是我的动力, 但请注明出处,隔壁老王的开发园:http://www.cnblogs.com/titibili 2016年1月31日 18:53 作者:Ygirl ...
- 【转载】主数据管理(MDM)与元数据管理
主数据(Master Data)和元数据(Meta Data)是两个完全不同的概念.元数据是指表示数据的相关信息,比如数据定义等,而主数据是指实例数据,比如产品目录信息等.比如,某省地税开发了一套 征 ...
- kafka常用的操作命令
1.kafka启动命令 nohup bin/kafka-server-start.sh config/server.properties & 2.创建topic bin/kafka-topic ...
- 系统调用wait、waitpid和exec函数
本文介绍了Linux下的进程的一些概念,并着重讲解了与Linux进程管理相关的重要系统调用wait,waitpid和exec函数族,辅助一些例程说明了它们的特点和使用方法. 1.7 背景 在前面的文章 ...
- 【转载】4412开发板、PC、ubuntu通过网线连接
今天看到使用TFTP方式,开发板直接从ubuntu下载程序,不需要一直通过烧写文件系统下载,我试了一下,虚拟机.开发板.pc三者老是互相ping不通.纠结了很久终于解决了. 写下这个小笔记,供大家参考 ...
- Hive UDF 实验1
项目中使用的hive版本低于0.11,无法使用hive在0.11中新加的开窗分析函数. 在项目中需要使用到row_number()函数的地方,有人写了udf来实现这个功能. new java proj ...
- Zbrush遮罩边界该怎么实现羽化和锐化
很多情况下为了雕刻制图需要,在ZBrush®中不仅要使用边缘清晰的遮罩,有时还要将遮罩边缘变得模糊,做羽化效果.那么如何在ZBrush中实现羽化遮罩效果或锐化遮罩效果,本文将做详细讲解. 若有疑问可直 ...
- javascript中的this应用
1. this作为全局变量2. 作为对象方法的调用3. 作为构造函数调用4. apply调用 this是Javascript语言的一个关键字.它代表函数运行时,自动生成的一个内部对象,只能在函数内部使 ...
- TDD in Expert Python Programmin
Test-Driven Development PrinciplesTDD consists of writing test cases that cover a desired feature, t ...