我使用for循环绘制了几个文本元素.但我想要在所有其他元素之上绘制第一个元素.除了反转循环之外,还有一种方法可以为文本或形状等绘制元素定义图层编号吗?
不,HTML5 Canvas-like SVG 在渲染时使用"画家模型":你放下的墨水立即在画布上干燥; 连续绘制调用将在结果之上.
此外,HTML5画布,SVG不同或HTML使用非保留(或立即)图形模式:与原来的绘图命令已签发后他们没有对象将被保留.
你的选择是:
更改循环,或以其他方式实现自己的分层系统,将绘制调用排队,然后按顺序从下到上发布.
作为@Stoive表明,程序创建单独的(未显示)的画布元素,提请他们,然后在你喜欢的顺序结果的blit回你的主画布.
在页面上创建多个(显示的)画布,并使用CSS对它们进行分层,将每个画布作为自己的图层绘制.
最后一个选项可以让你最自由,包括能够脏/清除只是一层在任何时间,或重新排序层,而不必自己recomposite他们.