JS调整16进制颜色生成更亮或者更暗的颜色

/**
 * @description: 调整颜色更亮更暗
 * @param {string} color 16进制颜色
 * @param {number} range 正负数决定颜色更改
 * @return {string} new color
 */
function lightenDarkenColor(color, range) {
  let num = parseInt(color.slice(1),16);
  let r = (num >> 16) + range;
  let b = ((num >> 8) & 0x00FF) + range;
  let g = (num & 0x0000FF) + range;
				
  if (r > 255) r = 255;
  else if (r < 0) r = 0;

  if (b > 255) b = 255;
  else if (b < 0) b = 0;
				
  if (g > 255) g = 255;
  else if (g < 0) g = 0;
  
  return '#' + (g | (b << 8) | (r << 16)).toString(16);
}
posted @ 2022-05-01 10:42  11_show  阅读(458)  评论(0)    收藏  举报