자바스크립트로 중간 밝기 얻기
14931 단어 jQueryJavaScript
같은 색조로 두 가지 색의 중간 밝기를 얻다
나는 같은 색조로 그라데이션 부분의 가장 밝은 색과 가장 어두운 색의 중간 색을 빼고 싶다.
프레젠테이션
<section id="lowColor" class="color-sec">
<h1>low color</h1>
<!-- .low-color // --></section>
<section id="midColor" class="color-sec">
<h1>mid color</h1>
<!-- .mid-color // --></section>
<section id="highColor" class="color-sec">
<h1>high color</h1>
<!-- .high-color // --></section>
재구성 전
// 取得したい中間色に対する2色を設定する(16進数のみ)
var color1 = '#171a46';
var color2 = '#414eac';
// 中間色を返す関数
function getMedianColor(color1,color2){
color1 = color1.match(/\w/g).join('');
var r1 = color1.substr(0,2);
r1 = parseInt('0x'+r1);
var g1 = color1.substr(2,2);
g1 = parseInt('0x'+g1);
var b1 = color1.substr(4,2);
b1 = parseInt('0x'+b1);
color2 = color2.match(/\w/g).join('');
var r2 = color2.substr(0,2);
r2 = parseInt('0x'+r2);
var g2 = color2.substr(2,2);
g2 = parseInt('0x'+g2);
var b2 = color2.substr(4,2);
b2 = parseInt('0x'+b2);
var r3 = (r1+r2)/2;
r3 = r3.toString(16);
var g3 = (g1+g2)/2;
g3 = g3.toString(16);
var b3 = (b1+b2)/2;
b3 = b3.toString(16);
var bgclr = '#'+r3+g3+b3;
return bgclr;
}
// 生成された中間色をbackgroundに設定する
$('#midColor').css('background',getMedianColor(color1,color2));
재구성 후
// 取得したい中間色に対する2色を設定する(16進数のみ)
var color1 = '#171a46';
var color2 = '#414eac';
// 中間色を返す関数
function getMedianColor(color1,color2){
color1 = getColorBase10(color1);
color2 = getColorBase10(color2);
// 16進数を10進数に変換する
function getColorBase10(base16){
var rgb = [];
var color = '';
base16 = base16.match(/\w/g).join('');
for(var i=0; i<base16.length;i+=2){
color = base16.substr(i,2);
color = parseInt('0x'+color);
rgb.push(color);
}
return rgb;
}
// 2色間の「r」「g」「b」それぞれの平均値を取得して
// 16進数に戻す
function getColor(color1,color2){
var rgb = [];
for(var i=0; i<color1.length; i++){
rgb.push((color1[i]+color2[i])/2);
rgb[i] = rgb[i].toString(16);
}
return '#'+rgb.join('');
}
return getColor(color1,color2);
}
// 生成された中間色をbackgroundに設定する
$('#midColor').css('background',getMedianColor(color1,color2));
Reference
이 문제에 관하여(자바스크립트로 중간 밝기 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ShinyaOkazawa/items/32637f69927f401208c0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)