Premiers pas avec Canvas

Canvas est une balise HTML pour des graphismes dans une surface de dessin interactive. Son utilisation est très simple.

En effet, trois choses seulement sont nécessaires pour utiliser Canvas:

  1. Une page HTML avec le doctype HTML 5.
  2. Une balise <canvas>.
  3. Un peu de code JavaScript

1) Le doctype HTML 5

Il est indispensable de préciser un DOCTYPE sur la première ligne de la page, qui pour HTML 5 a la forme suivante:

<!DOCTYPE html>

2) Une balise canvas

La balise doit avoir un attribut "id" pour qu'on puisse la référencer dans le code JavaScript:

<canvas id="moncanevas" width="400" height="300"></canvas>  

Cette balise n'a pas de contenu HTML, sauf éventuellement un message qui s'affiche seulement dans les navigateurs anciens qui ne reconnaissent pas HTML 5. Par exemple:

<canvas id="moncanevas" width="400" height="300">
  Canvas n'est pas implémenté dans ce navigateur.
</canvas>   

3) Un script en JavaScript

Le contenu de <canvas> est donné dynamiquement par du code JavaScript. Par exemple, on peut afficher un rectangle bleu.

canvas = document.getElementById("moncanevas"); 
if (canvas.getContext)
{    
    context = canvas.getContext('2d'); 
}
function rectangle()
{
   context.fillRect(100,0,80,80);     
}  

Le script sera démarré par l'évènement onload associée à la balise <body> ou à l'élément window.
Dans cet exemple on crée la fonction setCanvas() et on l'assigne à onload:

function setCanvas()
{
  var canvas = document.getElementById("moncanevas"); 
  var context = canvas.getContext("2d");
  context.fillStyle = "blue"   
  context.fillRect(100,0,200,100);
}
window.onload=setCanvas;

L'attribut fillStyle assigne une couleur courante au contexte, qui sera celle des objets dessinés par la suite. On peut lui assigner un nom de couleur, un code rgb ou rgba.
La méthode fillRect affiche un rectangle rempli avec la couleur courante, et à pour paramètres, x, y, largeur, hauteur.

Démonstration (Firefox, Chrome, Edge, Safari, Opera):

Liste des fonctions graphiques de l'API Canvas

Regardez cette démonstration

Voir aussi