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 相关文章推荐
基于jquery封装的一个js分页
Nov 15 Javascript
javaScript年份下拉列表框内容为当前年份及前后50年
May 28 Javascript
jQuery中parents()和parent()的区别分析
Oct 28 Javascript
浅谈JavaScript字符串拼接
Jun 25 Javascript
果断收藏9个Javascript代码高亮脚本
Jan 06 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
Jun 15 Javascript
第十篇BootStrap轮播插件使用详解
Jun 21 Javascript
原生JS获取元素集合的子元素宽度实例
Dec 14 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
Oct 23 Javascript
vue基础之v-bind属性、class和style用法分析
Mar 11 Javascript
Vue.js实现tab切换效果
Jul 24 Javascript
使用layer弹窗,制作编辑User信息页面的方法
Sep 27 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检测用户当前使用的浏览器是否为IE浏览器
2013/12/03 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
thinkPHP5.0框架命名空间详解
2017/03/18 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
2020/03/03 PHP
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
jquery 批量上传图片实现代码
2010/01/28 Javascript
firefox火狐浏览器与与ie兼容的2个问题总结
2010/07/20 Javascript
利用jquery包将字符串生成二维码图片
2013/09/12 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
关于node-bindings无法在Electron中使用的解决办法
2018/12/18 Javascript
angularjs http与后台交互的实现示例
2018/12/21 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
2019/02/26 Javascript
Fetch超时设置与终止请求详解
2019/05/18 Javascript
微信小程序实现定位及到指定位置导航的示例代码
2019/08/20 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
Vue中通过vue-router实现命名视图的问题
2020/04/23 Javascript
新手该如何学python怎么学好python?
2008/10/07 Python
python删除文件示例分享
2014/01/28 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
Python3.4 splinter(模拟填写表单)使用方法
2018/10/13 Python
python创建学生管理系统
2019/11/22 Python
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
人力资源管理专业应届生求职信
2013/09/28 职场文书
竞聘副主任科员演讲稿
2014/01/11 职场文书
退休教师欢送会主持词
2014/03/31 职场文书
房务中心文员岗位职责
2014/04/16 职场文书
电子装配专业毕业生求职信
2014/04/23 职场文书
课外小组活动总结
2014/08/27 职场文书
教师个人成长总结
2015/02/11 职场文书
英语辞职信范文
2015/02/28 职场文书
欠款纠纷起诉状
2015/05/19 职场文书
vue配置型表格基于el-table拓展之table-plus组件
2022/04/12 Vue.js
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang