js实现可得到不同颜色值的颜色选择器实例


Posted in Javascript onFebruary 28, 2015

本文实例讲述了js实现可得到不同颜色值的颜色选择器。分享给大家供大家参考。具体实现方法如下:

<html>

<head>

<title>js颜色选择器,可得到不同的颜色值</title>

</head>

<body>

<input id=kkk1 style=position:absolute;left:0;top:0>

<input id=kkk2 style=position:absolute;left:200;top:0>

<input id=kkk3 style=position:absolute;left:400;top:0>

<input id=kkk4 style=position:absolute;left:600;top:0>

<div id=RainBowDiv style='position:absolute;left:200;top:30;'></div>

<script>

var iW = '70';//共有6种颜色,每种颜色的宽为iW。iW*6为色带的宽。

var iH = '400';//iH为色带的高。

//计算HSV颜色代码。

function HSV(){

kkk1.value = 'X:'+event.offsetX+'   Y:'+event.offsetY;

var H,S,V;

var pY = event.offsetY;

if(pY == 0){H = S = 0; V = 100;}

else{

 if(pY == iH-1) H = S = V = 0;

 else{

  H = Math.floor(360*event.offsetX/(iW*6));

  S = Math.round(50*(iH-pY)/(iH/2));

  V = Math.round(100-50*pY/iH);

  }

 }

kkk2.value='HSV('+H+','+S+'%,'+V+'%)';

HSVtoRGB(H,S/100,V/100);

}
//计算RGB颜色代码。

function HSVtoRGB(h,s,v){

var i, f ,p1 ,p2 ,p3;

var r = g = b = 0;

if(s < 0) s=0;

if(s > 1) s=1;

if(v < 0) v=0;

if(v > 1) v=1;

h %= 360;

if(h < 0) h+=360;

h /= 60;

i = Math.floor(h);

f = h-i;

p1 = v*(1-s);

p2 = v*(1-s*f);

p3 = v*(1-s*(1-f));

if(i == 0){r=v; g=p3; b=p1;}

else if(i == 1){r=p2; g=v; b=p1;}

else if(i == 2){r=p1; g=v; b=p3;}

else if(i == 3){r=p1; g=p2; b=v;}

else if(i == 4){r=p3; g=p1; b=v;}

else if(i == 5){r=v; g=p1; b=p2;}

kkk3.value='RGB('+Math.round(r*255)+','+Math.round(g*255)+','+Math.round(b*255)+')';

RGBtoHTML(Math.round(r*255),Math.round(g*255),Math.round(b*255))

}
//计算HTML颜色代码。

function RGBtoHTML(r,g,b){

r=(r>=16)?r.toString(16):('0'+r.toString(16))

g=(g>=16)?g.toString(16):('0'+g.toString(16))

b=(b>=16)?b.toString(16):('0'+b.toString(16))

kkk4.value='HTML #'+r+g+b;

}
function window.onload(){

var RainBow = new Array(255,0,0,  255,255,0,  0,255,0,  0,255,255,  0,0,255,  255,0,255,  255,0,0);

for(var i=0;i<6;i++){

 var R1 = RainBow[i*3];

 var G1 = RainBow[i*3+1];

 var B1 = RainBow[i*3+2];

 var R2 = RainBow[(i+1)*3];

 var G2 = RainBow[(i+1)*3+1];

 var B2 = RainBow[(i+1)*3+2];

 RainBowDiv.innerHTML += "<div style='position:absolute;left:"+i*iW+";top:0;width:"+iW+";height:"+iH+";background:rgb("+R1+","+G1+","+B1+");'></div><div style='position:absolute;left:"+i*iW+";top:0;width:"+iW+";height:"+iH+";background:rgb("+R2+","+G2+","+B2+");filter:alpha(opacity=0,finishopacity=100,Style=1);'></div>"

 }

RainBowDiv.innerHTML += "<div style=position:absolute;left:0;top:0;width:"+6*iW+";height:"+iH+";background:rgb(128,128,128);filter:alpha(opacity=0,finishOpacity=100,style=1,starty=0,finishy=100,startx=0,finishx=0)></div><div style='position:absolute;left:0;top:0;width:"+(6*iW+1)+";height:"+iH+";' onmousemove=HSV()></div>"

}

</script>

</body>

</html>

更多js颜色操作可参考本站颜色工具:

RGB颜色编码生成器

在线网页配色工具

RGB颜色查询对照表_颜色代码表_颜色的英文名称大全

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
Windows Live的@live.com域名注册漏洞 利用代码
Dec 27 Javascript
js刷新框架子页面的七种方法代码
Nov 20 Javascript
通过javascript获取iframe里的值示例代码
Jun 24 Javascript
JQuery给网页更换皮肤的方法
May 30 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
Sep 22 Javascript
vue学习笔记之v-if和v-show的区别
Sep 20 Javascript
vue2.0 子组件改变props值,并向父组件传值的方法
Mar 01 Javascript
详解微信小程序之scroll-view的flex布局问题
Jan 16 Javascript
解决vue打包后刷新页面报错:Unexpected token
Aug 27 Javascript
vue+layui实现select动态加载后台数据的例子
Sep 20 Javascript
JavaScript实现秒杀时钟倒计时
Sep 29 Javascript
Vue+TypeScript中处理computed方式
Apr 02 Vue.js
JS+CSS实现实用的单击输入框弹出选择框的方法
Feb 28 #Javascript
JS实现很酷的EMAIL地址添加功能实例
Feb 28 #Javascript
浅谈JavaScript数据类型及转换
Feb 28 #Javascript
javaScript基础语法介绍
Feb 28 #Javascript
jQuery实现的输入框选择时间插件用法实例
Feb 28 #Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
Feb 28 #Javascript
JavaScript生成随机数的4种自定义函数分享
Feb 28 #Javascript
You might like
PHP+DBM的同学录程序(2)
2006/10/09 PHP
解析PHP 使用curl提交json格式数据
2013/06/29 PHP
php生成图形(Libchart)实例
2013/11/06 PHP
表单切换,用回车键替换Tab健(不支持IE)
2011/07/20 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
jQuery事件用法实例汇总
2014/08/29 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
JavaScript字符串常用类使用方法汇总
2015/04/14 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
JavaScript制作颜色反转小游戏
2016/09/25 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
Vue.js递归组件构建树形菜单
2017/12/24 Javascript
es6基础学习之解构赋值
2018/12/10 Javascript
详解如何提升JSON.stringify()的性能
2019/06/12 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
vue相同路由跳转强制刷新该路由组件操作
2020/08/05 Javascript
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
python求众数问题实例
2014/09/26 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
Python 私有化操作实例分析
2019/11/21 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
Whittard官方海外旗舰店:英国百年茶叶品牌
2018/02/22 全球购物
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
外贸学院会计专业应届生求职信
2013/11/14 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
学生社团文化节开幕式主持词
2014/03/28 职场文书
家长对学生的评语
2014/04/18 职场文书
一年级评语大全
2014/04/23 职场文书
公司周年庆典标语
2014/10/07 职场文书
财务总监岗位职责
2015/02/03 职场文书
Nginx配置https原理及实现过程详解
2021/03/31 Servers
Python机器学习之逻辑回归
2021/05/11 Python
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL
Vue3.0写自定义指令的简单步骤记录
2021/06/27 Vue.js