CanvasRenderingContext2D.setLineDash()

La méthode setLineDash() de l'interface Canvas 2D API's CanvasRenderingContext2D définit le modèle à utiliser pour les pointillés lors du dessin de la ligne, en utilisant un tableau de valeurs qui spécifie les longueurs des alternances entre pleins et creux.

Pour renvoyer une ligne pleine, configurez la liste pour les pointillés avec un tableau vide.

Syntaxe

ctx.setLineDash(segments);

Paramètres

segments
Un tableau Array de nombres qui spécifie les distances qui vont alternativement dessiner pleins et creux (dans l'unité du système de coordonnées). Si le nombre d'éléments du tableau est impair, les éléments du tableau sont recopiés et concaténés. Par exemple, [5, 15, 25] est transformé en [5, 15, 25, 5, 15, 25]. Si le tableau est vide, le pointillé est supprimé, et la ligne devient pleine.

Valeur de retour

undefined.

Exemples

C'est simplement un fragment de code qui utilise la méthode setLineDash() pour dessiner une ligne pointillée au dessus d'une ligne pleine.

HTML

<canvas id="canvas"></canvas>

JavaScript

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');

ctx.beginPath();
ctx.setLineDash([5, 15]);
ctx.moveTo(0, 50);
ctx.lineTo(400, 50);
ctx.stroke();

ctx.beginPath();
ctx.setLineDash([]);
ctx.moveTo(0, 150);
ctx.lineTo(400, 150);
ctx.stroke();

Essayez le

Editez le code ci-dessous et observez les changements se produire dans le canvas:

Playable code
<canvas id="canvas" width="400" height="200" class="playable-canvas"></canvas>
<div class="playable-buttons">
  <input id="edit" type="button" value="Edit" />
  <input id="reset" type="button" value="Reset" />
</div>
<textarea id="code" class="playable-code" style="height:150px">
ctx.beginPath();
ctx.setLineDash([5, 15]);
ctx.moveTo(0, 50);
ctx.lineTo(400, 50);
ctx.stroke();

ctx.beginPath();
ctx.setLineDash([]);
ctx.moveTo(0, 150);
ctx.lineTo(400, 150);
ctx.stroke();</textarea>
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var textarea = document.getElementById("code");
var reset = document.getElementById("reset");
var edit = document.getElementById("edit");
var code = textarea.value;

function drawCanvas() {
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  eval(textarea.value);
}

reset.addEventListener("click", function() {
  textarea.value = code;
  drawCanvas();
});

edit.addEventListener("click", function() {
  textarea.focus();
})

textarea.addEventListener("input", drawCanvas);
window.addEventListener("load", drawCanvas);

Spécifications

Specification Status Comment
HTML Living Standard
La définition de 'CanvasRenderingContext2D.setLineDash' dans cette spécification.
Standard évolutif  

Compatibilité des navivgateurs

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari pour iOSSamsung Internet
Support simpleChrome Support complet OuiEdge Support complet 12Firefox Support complet 27IE Support complet 11Opera Support complet OuiSafari Support complet OuiWebView Android Support complet OuiChrome Android Support complet OuiEdge Mobile Support complet OuiFirefox Android Aucun support NonOpera Android Support complet OuiSafari iOS Support complet OuiSamsung Internet Android Support complet Oui

Légende

Support complet  
Support complet
Aucun support  
Aucun support

Notes spécifiques pour Gecko

  • Depuis  Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4), la propriété non standard et dépréciée mozDash a été implémentée  comme liste de définition pour les pointillés. Cette propriété sera dépréciée et supprimée dans le futur, voir bug 931389. Utilisez setLineDash() à la place.

Notes spécifiques pour WebKit

  • Dans les navigateurs à base de WebKit (e.g. Safari), la propriété non standard et dépréciée webkitLineDash est implémentée en plus de cette méthode. Utilisez setLineDash() à la place.

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : SphinxKnight, GoGoAndroid
Dernière mise à jour par : SphinxKnight,