赤から黄、青に変更したい場合:
var slider = document.getElementById('range');
var ctx=document.getElementById("canvas").getContext("2d");
slider.addEventListener("change",function(){
var r,g,b;
if(slider.value<=50){
r=255;
g=Math.round(255*slider.value/50);
b=0;
}else{
r=Math.round(255*(100-slider.value)/50);
g=r;
b=Math.round(255*(slider.value-50)/50);
}
ctx.clearRect(0,0,100,100);
ctx.save();
ctx.fillStyle="rgb("+r+","+g+","+b+")";
ctx.beginPath();
ctx.rect(0,0,100,100);
ctx.fill();
ctx.restore();
},false);
赤から青に変更したい場合:
var slider=document.getElementById("range");
var ctx=document.getElementById("canvas").getContext("2d");
slider.addEventListener("change",function(){
var r,b;
r=Math.round(255*(100-slider.value)/100);
b=Math.round(255*slider.value/100);
ctx.clearRect(0,0,100,100);
ctx.save();
ctx.fillStyle="rgb("+r+",0,"+b+")";
ctx.beginPath();
ctx.rect(0,0,100,100);
ctx.fill();
ctx.restore();
},false);
2 つの両方を含む JSFiddle
「赤から黄、青」の場合、3 色:
- 赤: 0 から 50 で 255 に留まり、50 から 100 で 255 から 0 に留まる。
- 緑: 0 から 50 で 0 から 255、次に 50 から 100 で 255 から 0。
- 青: 0 ~ 50 では 0 に留まり、50 ~ 100 では 0 ~ 255 になります。
「赤から青」の場合、3 色:
- 赤: 0 ~ 100 で 255 ~ 0。
- 緑: 存在しません。
- 青: 0 から 100 で 0 から 255。
編集:
トランザクションの 3 番目のオプションは次のとおりです。
var slider=document.getElementById("range");
var ctx=document.getElementById("canvas").getContext("2d");
slider.addEventListener("change",function(){
var r,g,b;
if(slider.value<=25){
r=255;
g=Math.round(255*slider.value/25);
b=0;
}else if(slider.value<=50){
r=Math.round(255*(50-slider.value)/25);
g=255;
b=0;
}else if(slider.value<=75){
r=0;
g=255;
b=Math.round(255*(slider.value-50)/25);
}else{
r=0;
g=Math.round(255*(100-slider.value)/25);
b=255;
}
ctx.clearRect(0,0,100,100);
ctx.save();
ctx.fillStyle="rgb("+r+","+g+","+b+")";
ctx.beginPath();
ctx.rect(0,0,100,100);
ctx.fill();
ctx.restore();
},false);
3 つすべてを含む JSFiddle