如何获取一个颜色的反相色呢

yiwusuo 2011-05-16 03:25:13
如题。
如一个颜色为:#FFCC00,求得它的反相色呢(应该是#0033FF)
...全文
535 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
2011-05-16
  • 打赏
  • 举报
回复

var color = "#FFCC00";
var r = (0xFFFFFF - parseInt(color.slice(-6), 16)).toString(16);
r = "#" + ("000000" + r).slice(-6).toUpperCase();
alert(r);
乌镇程序员 2011-05-16
  • 打赏
  • 举报
回复
var color = '#FFCC00';
var ar = new Array();

//分三组转换为10进制整数,然后减去255,取绝对值,再转换为16进制字符
ar.push(Math.abs(parseInt('0x' + color.substr(1,2))-255).toString(16));
ar.push(Math.abs(parseInt('0x' + color.substr(3,2))-255).toString(16));
ar.push(Math.abs(parseInt('0x' + color.substr(5,2))-255).toString(16));
//不足2位的补零 转换为大写
for(i in ar) {
if (ar[i].length < 2) ar[i] = '0' + ar[i];
ar[i] = ar[i].toUpperCase();
}

var newColor = '#' + ar.join('');
alert(newColor);
孟子E章 2011-05-16
  • 打赏
  • 举报
回复
计算方法参见
http://bbs.blueidea.com/thread-2596635-1-1.html
潮起潮落 2011-05-16
  • 打赏
  • 举报
回复 1
按LS的话,如果前两位不是ff,相减不是00就可以。
如果是ff。得到的只有四位。
修改一下。

var I=0xffffff;
var x=0xffcc00;
var rst="";
rs=(I-x).toString(16);
for(var m=0;m<(6-rs.length);m++){
rst+="0";
}
rs=rst+rs;
alert(rs);
fenxuehaiyan 2011-05-16
  • 打赏
  • 举报
回复
和二进制的反码类似


var I=0xffffff;
var x=0xffcc00;
alert((I-x).toString(16));

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧