1. ホーム
  2. javascript

[解決済み] HTML5 Canvas の z-index を設定する

2022-02-14 15:55:43

質問

HTML5 canvasで描画されたオブジェクトのz-indexを設定することはできますか?

あるオブジェクトを "player" の前に、別のオブジェクトを "player" の後ろに置くことができるようにしようとしているのです。

どのように解決するのですか?

はい、そうです。あなたが使用することができます グローバルコンポジットオペレーション を使用して、既存のピクセルの後ろに描画します。

ctx.globalCompositeOperation='destination-over';

以下はその例とDemoです。

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

var cx=100;

drawCircle()
cx+=20;

ctx.globalCompositeOperation='destination-over';

$("#test").click(function(){
  drawCircle();
  cx+=20;
});

function drawCircle(){
  ctx.beginPath();
  ctx.arc(cx,150,20,0,Math.PI*2);
  ctx.closePath();
  ctx.fillStyle=randomColor();
  ctx.fill();
}

function randomColor(){ 
  return('#'+Math.floor(Math.random()*16777215).toString(16));
}
body{ background-color: ivory; }
canvas{border:1px solid red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<button id="test">Draw new circle behind.</button><br>
<canvas id="canvas" width=300 height=300></canvas>