Invert text-color of a specific element (using jQuery)

David Knaack picture David Knaack · Feb 1, 2012 · Viewed 29.1k times · Source

How do I invert the text-color of an element using jQuery?

<div style="color: rgb(0, 0, 0)">Invert me</div>

Answer

yckart picture yckart · Mar 8, 2013

A bit late but better late than never:

function invert(rgb) {
  rgb = Array.prototype.join.call(arguments).match(/(-?[0-9\.]+)/g);
  for (var i = 0; i < rgb.length; i++) {
    rgb[i] = (i === 3 ? 1 : 255) - rgb[i];
  }
  return rgb;
}

console.log(
  invert('rgba(255, 0, 0, 0.3)'), // 0, 255, 255, 0.7
  invert('rgb(255, 0, 0)'), // 0, 255, 255
  invert('255, 0, 0'), // 0, 255, 255
  invert(255, 0, 0) // 0, 255, 255
);