16진수로 된 요소의 배경색 코드를 얻는 방법은?
요소의 배경색 코드를 얻으려면 어떻게 해야 합니까?
console.log($(".div").css("background-color"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="div" style="background-color: #f5b405"></div>
내가 원하는것
#f5b405
아래 예제 링크를 확인하고 div를 클릭하면 색상 값이 16진수로 표시됩니다.
var color = '';
$('div').click(function() {
var x = $(this).css('backgroundColor');
hexc(x);
console.log(color);
})
function hexc(colorval) {
var parts = colorval.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
delete(parts[0]);
for (var i = 1; i <= 3; ++i) {
parts[i] = parseInt(parts[i]).toString(16);
if (parts[i].length == 1) parts[i] = '0' + parts[i];
}
color = '#' + parts.join('');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='div' style='background-color: #f5b405'>Click me!</div>
http://jsfiddle.net/DCaQb/ 에서 작동 사례를 확인합니다.
HTML5 캔버스는 특정 속성이 다음과 같을 때 색상 값을 구문 분석하는 데 필요하기 때문에 약간의 해킹이 있습니다.strokeStyle
그리고.fillStyle
재설정:
var ctx = document.createElement('canvas').getContext('2d');
ctx.strokeStyle = 'rgb(64, 128, 192)';
var hexColor = ctx.strokeStyle;
function getBackgroundColor($dom) {
var bgColor = "";
while ($dom[0].tagName.toLowerCase() != "html") {
bgColor = $dom.css("background-color");
if (bgColor != "rgba(0, 0, 0, 0)" && bgColor != "transparent") {
break;
}
$dom = $dom.parent();
}
return bgColor;
}
Chrome과 Firefox에서 제대로 작동하기
원하는 형식으로 변환하기만 하면 되는 색상이 있습니다.
다음은 효과를 볼 수 있는 스크립트입니다. http://www.phpied.com/rgb-color-parser-in-javascript/
사실, 만약에 그에 대한 정의가 없다면,background-color
어떤 요소 아래에서 크롬은 그것의 출력을 할 것입니다.background-color
~하듯이rgba(0, 0, 0, 0)
, 파이어폭스의 출력은transparent
.
나의 아름다운 non-standard 솔루션
HTML
<div style="background-color:#f5b405"></div>
jQuery
$(this).attr("style").replace("background-color:", "");
결과
#f5b405
@Newred 솔루션 추가.만약 당신의 스타일이 단지 그 이상의 것을 가지고 있다면.background-color
다음을 사용할 수 있습니다.
$(this).attr('style').split(';').filter(item => item.startsWith('background-color'))[0].split(":")[1]
이 솔루션은 @Newred 및 @Radu Di ță에서 언급한 내용의 일부를 활용합니다.하지만 덜 표준적인 경우에는 효과가 있을 것입니다.
$(this).attr('style').split(';').filter(item => item.startsWith('background-color'))[0].split(":")[1].replace(/\s/g, '');
두 사람 모두 배경색과 색 사이의 간격을 확인하지 않는 것이 문제입니다.
이 모든 것이 위 코드와 일치할 것입니다.
background-color: #ffffff
background-color: #fffff;
background-color:#fffff;
언급URL : https://stackoverflow.com/questions/5999209/how-to-get-the-background-color-code-of-an-element-in-hex
'programing' 카테고리의 다른 글
hibernate 및 SQL에서 문자열 쿼리의 밑줄을 탈출하는 방법? (0) | 2023.10.30 |
---|---|
WP_Query() - meta_query OR tax_query (0) | 2023.10.30 |
관리 대시보드 언어를 변경하지 않고 워드프레스 사이트 언어 변경 (0) | 2023.10.30 |
1103515245가 란드에서 사용되는 이유는 무엇입니까? (0) | 2023.10.30 |
lodash를 사용하여 들쭉날쭉한 배열 비교(주문 없이 품목 존재) (0) | 2023.10.30 |