如果你想从红色变成黄色再到蓝色:
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);
包含两个的 JSFiddle
在“红到黄到蓝”的情况下,三种颜色:
- 红色:在 0 到 50 时停留在 255,然后在 50 到 100 时停留在 255 到 0;
- 绿色:从 0 到 255 到 0 到 50,然后从 255 到 0 到 50 到 100;
- 蓝色:在 0 到 50 中停留在 0,然后在 50 到 100 中停留在 0 到 255。
在“红到蓝”的情况下,三种颜色:
- 红色:从 0 到 100 中的 255 到 0;
- 绿色:不存在;
- 蓝色:0 到 100 中的 0 到 255。
编辑:
这是交易的第三种选择:
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);
包含所有三个的 JSFiddle