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 相关文章推荐
javascript 出生日期和身份证判断大全
Nov 13 Javascript
jquery $.ajax()取xml数据的小问题解决方法
Nov 20 Javascript
js表头排序实现方法
Jan 16 Javascript
js实现精美的图片跟随鼠标效果实例
May 16 Javascript
利用Angularjs和Bootstrap前端开发案例实战
Aug 27 Javascript
JavaScript中双符号的运算详解
Mar 12 Javascript
vue 2.0封装model组件的方法
Aug 03 Javascript
Express系列之multer上传的使用
Oct 27 Javascript
react用Redux中央仓库实现一个todolist
Sep 29 Javascript
Vue.directive 实现元素scroll逻辑复用
Nov 29 Javascript
JsonServer安装及启动过程图解
Feb 28 Javascript
如何用JavaScript实现一个数组惰性求值库
May 05 Javascript
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写出自己的BLOG系统 2
2010/04/12 PHP
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
2019/09/11 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
2019/10/22 PHP
discuz论坛更换域名,详细文件修改步骤
2020/12/09 PHP
JavaScript 版本自动生成文章摘要
2008/07/23 Javascript
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
2012/06/11 Javascript
鼠标放在图片上显示大图的JS代码
2013/03/26 Javascript
基于jquery实现的定时显示与隐藏div广告的实现代码
2013/08/22 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
15位和18位身份证JS校验的简单实例
2016/07/18 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
详解A标签中href=&quot;&quot;的几种用法
2017/08/20 Javascript
javascript高级模块化require.js的具体使用方法
2017/10/31 Javascript
WebPack配置vue多页面的技巧
2018/05/15 Javascript
原生js实现随机点名
2020/07/05 Javascript
Python循环语句中else的用法总结
2016/09/11 Python
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
python判断设备是否联网的方法
2018/06/29 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
纽约复古灵感的现代珠宝品牌:Lulu Frost
2018/03/03 全球购物
机电专业个人求职信范文
2013/12/30 职场文书
小学音乐教学反思
2014/02/05 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
财务会计实训报告
2014/11/05 职场文书
2016元旦晚会主持词开场白和结束语
2015/12/04 职场文书
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android