javascript – 将1到16777215之间的数字转换为颜色值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 将1到16777215之间的数字转换为颜色值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1723字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 将1到16777215之间的数字转换为颜色值](/upload/InfoBanner/zyjiaocheng/761/7fc107393e584315903ad98547909950.jpg)
我正在尝试将1到16,777,215之间的数字转换为使用Javascript / jQuery在色谱中增量的任何颜色格式(RGB / HSL / HEX).
数字16,777,215是RGB(255,255,255)的总可能组合,其为32位颜色.
我最初认为使用toString(16)将值转换为十六进制值会在频谱中增加,但随着数字增加,它似乎通过不同的亮度值而不是闪烁.这种不受欢迎的行为的一个例子是http://jsfiddle.net/2z82auka/
var colour = 16777215;
window.setInterval(function(){
colour -= 1000;
$('body').css({background:'#' + colour.toString(16)});
}, 50);
如何将1到16777215之间的值转换为下面显示的色谱上的颜色?
解决方法:
下面的代码将完全按照您的要求进行操作 – 它将为您提供与下图完全相同的鲜艳色彩,并且为了证明这一点,演示将打印出颜色旁边的整数值.结果将如下所示.请在setInterval代码中使用rainbow函数.
var colours = 16777215;
function rainbow(numOfSteps, step) {
var r, g, b;
var h = 1 - (step / numOfSteps);
var i = ~~(h * 6);
var f = h * 6 - i;
var q = 1 - f;
switch(i % 6){
case 0: r = 1, g = f, b = 0; break;
case 1: r = q, g = 1, b = 0; break;
case 2: r = 0, g = 1, b = f; break;
case 3: r = 0, g = q, b = 1; break;
case 4: r = f, g = 0, b = 1; break;
case 5: r = 1, g = 0, b = q; break;
}
var c = "#" + ("00" + (~ ~(r * 235)).toString(16)).slice(-2) + ("00" + (~ ~(g * 235)).toString(16)).slice(-2) + ("00" + (~ ~(b * 235)).toString(16)).slice(-2);
return (c);
}
function render(i) {
var item = "<li style='background-color:" + rainbow(colours, i) + "'>" + i + "</li>";
$("ul").append(item);
}
function repeat(fn, times) {
for (var i = 0; i < times; i+=10000) fn(i);
}
repeat(render, colours);
li {
font-size:8px;
height:10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<ul></ul>
(我不能赞成这个代码,但我可以因为不放弃和解决颜色变化而感到荣幸.参考:https://gist.github.com/ruiwen/6163115)
内容总结
以上是互联网集市为您收集整理的javascript – 将1到16777215之间的数字转换为颜色值全部内容,希望文章能够帮你解决javascript – 将1到16777215之间的数字转换为颜色值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。