We would like to know how to draw gradients on a canvas.
<!DOCTYPE HTML>
<html>
<head>
<script>
window.onload = function()<!--from w ww .j a v a 2 s . co m-->
{
canvas = document.getElementById("canvasArea");
context = canvas.getContext("2d");
var xPos = 20;
var yPos = 20;
var gap = 20;
var width = 80;
var height = 80;
context.shadowOffsetX = 4;
context.shadowOffsetY = 4;
context.shadowBlur = 3;
context.shadowColor = "gray";
context.lineWidth = 4;
var gradLH = context.createLinearGradient(20, 0, 100, 0 );
var gradLV = context.createLinearGradient(0, 0, 0, 100);
var gradLD = context.createLinearGradient(
xPos+(2*width)+(2*gap),
yPos,
xPos+220+width,
yPos+height);
var gradRC = context.createRadialGradient(
xPos+(3*width)+(3*gap)+(width/2),
yPos+(height/2),
5,
xPos+(3*width)+(3*gap)+(width/2),
yPos+(height/2),
50);
var gradRO = context.createRadialGradient(
xPos+(4*width)+(4*gap)+(width/4),
yPos+(height/2),
15,
xPos+(4*width)+(4*gap)+(width/2),
yPos+(height/2),
40);
gradLH.addColorStop( 0, "deeppink" );
gradLH.addColorStop(.3, "orange" );
gradLH.addColorStop(.6, "lime" );
gradLH.addColorStop( 1, "yellow" );
gradLV.addColorStop( 0, "red" );
gradLV.addColorStop(.4, "blueviolet" );
gradLV.addColorStop( 1, "gold" );
gradLD.addColorStop( 0, "fuchsia" );
gradLD.addColorStop(.5, "orange" );
gradLD.addColorStop( 1, "springgreen" );
gradRC.addColorStop( 0, "red" );
gradRC.addColorStop(.5, "turquoise" );
gradRC.addColorStop( 1, "olive" );
gradRO.addColorStop( 0, "yellow" );
gradRO.addColorStop(.7, "magenta" );
gradRO.addColorStop( 1, "limegreen" );
// A9. LINEAR gradients.
context.fillStyle = gradLH;
context.fillRect(xPos+(0*width)+(0*gap), yPos, width, height);
context.fillStyle = gradLV;
context.fillRect(xPos+(1*width)+(1*gap), yPos, width, height);
context.fillStyle = gradLD;
context.fillRect(xPos+(2*width)+(2*gap), yPos, width, height);
context.strokeStyle = gradLD;
context.beginPath();
context.moveTo(xPos, yPos+height+gap);
context.lineTo(xPos+(5*width)+(4*gap), yPos+height+gap);
context.stroke();
// A10. RADIAL gradients.
context.fillStyle = gradRC;
context.fillRect(xPos+(3*width)+(3*gap), yPos, width, height);
context.fillStyle = gradRO;
context.fillRect(xPos+(4*width)+(4*gap), yPos, width, height);
}
</script>
</head>
<body>
<div style = "width:525px; height:150px;
margin:0 auto; padding:5px;">
<canvas id = "canvasArea"
width = "525" height = "150"
style = "border:2px solid black">
</canvas>
</div>
</body>
</html>
The code above is rendered as follows: