2016-09-20 2 views
0

Примеры, которые я вижу с помощью <canvas>, всегда имеют фактический элемент холста в HTML. Скажем, у меня, например, уже есть элемент <header>, на который я хотел бы обратить внимание, есть ли способ использовать его в качестве холста напрямую? Или мне нужно добавить этот элемент canvas и убедиться, что он заполняет заголовок?Есть ли способ использовать любой элемент в качестве холста?

+0

Nope. Другие элементы html не имеют возможностей html5 canvas. Просто добавьте фактический элемент canvas в качестве дочернего элемента вашего заголовка. – markE

ответ

1

Сначала я был настроен скептически, но есть один способ достичь почти, который, используя css и getCSSCanvasContext() с webkit. Это позволяет отображать холст в качестве фона, чтобы вы могли контролировать его, как холст.

Ex:

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

Упростите интересную альтернативу, но вы можете также позиционировать CSS в качестве элемента canvas под или помещать элемент canvas внутри заголовка. – markE

+0

От хром 46 это было удалено. См. Https://bugs.chromium.org/p/chromium/issues/detail?id=475655, хотя '-moz-element' все еще может быть вокруг, и не полагайтесь на него. Вы можете установить фон в отображаемый холст через 'canvas.toDataURL' и css' URL ("url"); хотя он медленный. – Blindman67

Смежные вопросы