HTML5 Canvas set z-index

后端 未结 5 1270
陌清茗
陌清茗 2020-12-01 07:48

Is it possible to set the z-index of a drawn object in HTML5 canvas?

I am trying to get it so one object can be infront of a the \"player\" and another object is beh

5条回答
  •  旧时难觅i
    2020-12-01 07:57

    Yes..kind of yes. You can use compositing to "draw behind" existing pixels.

    ctx.globalCompositeOperation='destination-over';
    

    Here's an example and a 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;}
    
    

提交回复
热议问题