2012-12-13 4 views
0

나는 어둡음을 조절하기위한 색상 견본과 슬라이더를 만들었습니다. & 색상의 밝기. 슬라이더 값에 따라 색상 밝기를 변경하고 싶습니다. 내가 뭘하려 :jquery에서 색상 밝기를 변경하는 방법

$("#darklight").slider({ 
     range: "min", 
     value: 0, 
     min: -0.5, 
     max: 0.5, 
     step: 0.1, 
     slide: function (event, ui) { 
      $("#swatches").children("div").each(function (i, v) { 
       var color = $(v).attr("title"); 
       var rgb = HEXtoRGB(color); 
       var hsl = rgbToHsl(rgb[0], rgb[1], rgb[2]); 
       hsl[2] += ui.value; //what formula should i use here to change the lightness of color ? 
       rgb = hslToRgb(hsl[0], hsl[1], hsl[2]); 
       color = RGBtoHEX("rgb(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + ")"); 
       $(v).attr("title", color).css("backgroundColor", color); 
      }); 
     } 
    }); 

을 여기에 내가 HSL 색상을 변환하고 리터 값을 조작하려고하지만, 조작 할 수있는 올바른 공식을 받고 있지 않다. 누구든지 나를 도울 수 있습니까?

+0

당신이 밝기를 정의 할 수 있습니까? '불투명도'또는 '알파'를 의미합니까? –

+0

알파와 불투명도는 같습니다. 'L' 구성 요소를 말하는 것 같군요? – Alnitak

+0

@Alnitak WHUT?!?! 알파와 불투명도가 같은 것은 아닙니다. '불투명도 값을 요소에 적용하면 불투명도 값은 모든 자식 요소에 상속됩니다. 불투명도 값을 DIV (div {opacity : 0.5;})에 적용하면 해당 DIV 안에있는 텍스트, 이미지 및 기타 모든 요소가 불투명도 값을 상속받으며 불투명도가 투명 해집니다. 반면에 RGBa는 특정 요소의 색상 값의 불투명도를 설정하며 투명도는 하위 요소에 상속되지 않습니다. 즉, RGBA는 단일 선언에 대해서만 불투명도 값을 설정합니다. ' –

답변

0

HSL 색상의 L 속성을 수정하고 있습니다. 맞습니다.

오류는 L입니다. 공칭 값은 0.5이고 범위는 0 ~ 1.0이어야합니다.

따라서 귀하의 슬라이더 값이 +1-1에서 실행해야합니다 L에 추가 할 수 있지만이 범위 0 .. 1에서 결과 값을 고정 할 필요가

, 예컨대 :

hsl[2] += ui.value; 
hsl[2] = Math.min(hsl[2], 1); 
hsl[2] = Math.max(hsl[2], 0); 
+0

u는 어떻게 가치를 클램프해야하나요? – gaurav

+0

감사합니다 alnitak하지만 그냥 논리를 시도했지만 전혀 작동하지 – gaurav

+0

작동합니다 - 작동하지 않는 방법을 보여주는 테스트 사례 (즉 jsfiddle.net)를 만들어보십시오. – Alnitak

관련 문제