문제:
jQuery에서 css() 메서드는 다음을 얻습니다. 요소의 배경색을 rgb(r, g, b). 그러나 일반적인 요구 사항은 #FFFFFF와 같은 동등한 16진수 색상 값을 검색하는 것입니다.
해결책:
RGB에서 16진수 값을 얻는 전통적인 방법은 다음과 같습니다. 수동 변환은 지루할 수 있습니다. 다행스럽게도 간결한 한 줄 함수가 이를 달성합니다.
const rgba2hex = (rgba) => `#${rgba.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)$/).slice(1).map((n, i) => (i === 3 ? Math.round(parseFloat(n) * 255) : parseFloat(n)).toString(16).padStart(2, '0').replace('NaN', '')).join('')}`
이 함수는 RGB 및 RGBA 형식을 모두 처리하여 다양성을 보장합니다.
사용 예:
const element = $('#selector'); const rgbColor = element.css('backgroundColor'); const hexColor = rgba2hex(rgbColor);
Modern에 대한 업데이트된 답변 브라우저:
원래 솔루션 이후 ECMAScript 2015 기능에 대한 브라우저 지원이 크게 향상되었습니다. 이를 통해 더욱 간편하고 간결하게 RGB를 16진수로 변환할 수 있습니다.
const rgb2hex = (rgb) => `#${rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/).slice(1).map(n => parseInt(n, 10).toString(16).padStart(2, '0')).join('')}`
이 기능은 특히 RGB 색상 형식에 맞춰 유사한 기능을 제공합니다.
위 내용은 jQuery에서 RGB를 16진수 색상 값으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!