有没有办法使用任何元素作为画布?

问题描述:

示例我看到使用<canvas>在HTML中总是有一个实际的画布元素。比如说我已经有了一个我想要绘制的<header>元素,有没有办法直接使用它作为画布?或者我需要添加该画布元素并确保它正在填充标题?有没有办法使用任何元素作为画布?

+0

没有。其他html元素没有html5 canvas的功能。只需添加一个实际的画布元素作为您的标题的孩子。 – markE

起初我持怀疑态度,但实现的一种方式几乎,通过使用CSS和getCSSCanvasContext()与WebKit的。这允许您将画布显示为背景,以便您可以像画布一样控制它。

例:

HTML

<header></header> 

CSS

header { background: -webkit-canvas(fooBar); } 

的JavaScript(当文件就绪/ onload事件)

function fillCanvas(w, h) { 
    var ctx = document.getCSSCanvasContext('2d', 'fooBar', w, h); 

    // draw into canvas 
} 

一个完整的例子和更多的规格给出here

希望这很方便。

+0

Upvote用于一个有趣的替代方法,但是您可能还需要在页眉内部放置一个实际的canvas元素或放置一个canvas元素。 – markE

+0

从铬46这被删除。见https://bugs.chromium.org/p/chromium/issues/detail?id=475655虽然'-moz-element'可能仍然不会依赖它。您可以通过'canvas.toDataURL'和css'URL(“url”);'将背景设置为渲染画布,尽管速度很慢。 – Blindman67