如题。
如一个颜色为:#FFCC00,求得它的反相色呢(应该是#0033FF)

解决方案 »

  1.   

    和二进制的反码类似
    var I=0xffffff;
    var x=0xffcc00;
    alert((I-x).toString(16));
      

  2.   

    按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);
      

  3.   

    计算方法参见
    http://bbs.blueidea.com/thread-2596635-1-1.html
      

  4.   

    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);
      

  5.   


    var color = "#FFCC00";
    var r = (0xFFFFFF - parseInt(color.slice(-6), 16)).toString(16);
    r = "#" + ("000000" + r).slice(-6).toUpperCase();
    alert(r);