Базовое использование Canvas — Интерфейсы веб API
Он выглядит как элемент <img>
, но его отличие в том, что он не имеет атрибутов src
и alt
. Элемент <canvas>
имеет только два атрибута — ширину и высоту. Оба они не обязательны и могут быть выставлены с использованием свойств DOM. Если атрибуты высоты и ширины не установлены, canvas будет по умолчанию шириной 300 пикселей и в высоту 150 пикселей. Вы так же можете выставить размеры произвольно в CSS, но во время рендеринга изображение будет масштабироваться в соответствии с его размером и ориентацией.
Атрибут id не специфичен для элемента <canvas>,
но он может быть применен по умолчанию в атрибутах HTML, так как он может быть использован (почти) для любого элемента HTML (так же как класс). Это всегда отличная идея использовать id
, так как это позволяет намного проще идентифицировать наш элемент в сценарии.
Элемент <canvas>
может быть стилизован также, как любое изображение (margin, border, background, и т. д.). Эти правила, как бы то ни было, фактически не влияют на отрисовку в canvas. Мы увидим как это сделано позже в этом руководстве. Когда стили не указаны, canvas будет по умолчанию абсолютно прозрачным.
Запасное содержимое
Из-за того, что старые браузеры (в особенности, версии Internet Explorer раннее чем 9) не поддерживают элемент <canvas>
, Вам следует предоставить запасное содержимое для отображения этими браузерами.
Это очень просто: мы всего лишь предоставляем альтернативное содержимое внутри элемента
. Браузеры, которые не поддерживают <canvas>
проигнорируют container и отобразят запасное содержимое этого тега. Браузеры, которые поддерживают <canvas>
проигнорируют запасное содержимое, и просто нормально отобразят canvas.
Например, мы можем предоставить текстовое описание содержимого canvas или предоставить статичное изображение динамически отображаемого содержимого. Это может выглядеть как-то так:
<canvas> current stock price: $3.15 +0.15 </canvas> <canvas> <img src="images/clock.png" alt=""/> </canvas>
Сообщать пользователю о том, что его браузер не поддерживает canvas не поможет тем, кто не может прочесть содержимое тега canvas, к примеру. Предоставление полезной информации в дополнительном canvas делает этот тег более доступным для широкого использования.
Требуется тег
</canvas>
В отличии от элемента <img>
, элемент <canvas>
требует закрывающийся тег (</canvas>
). Если этот тег не предоставлен, остаток документа будет считаться запасным контентом и не будет отображен.
Если запасной контент не нужен, простой <canvas ...></canvas>
Рендеринг содержимого (контекста)
Элемент <canvas>
в документе создается с фиксированным размером элемента для рисования, который может иметь один или несколько контекстов для рендеринга, создавая и манипулируя содержимым для показа. В данном руководстве мы сфокусируемся на 2D рендеринге. Другие контексты могут предоставлять разные типы рендеринга, к примеру WebGl использует 3D контекст основанный на OpenGL ES.
Холст изначально пустой и прозрачный. Первым делом скрипт получает доступ к контексту и отрисовывает его. Элемент
имеет метод getContext()
, используется для получения контекста визуализации и ее функции рисования. getContext()
принимает один параметр, тип контекста. Для 2D графики, которая охвачена этим руководством будем использвать метку «2d».
var canvas = document.getElementById('tutorial');
var ctx = canvas.getContext('2d');
В первой строке скрипта мы получаем узел нашего холста <canvas>
, далее с помощью document.getContext()
метода мы присваиваем ему контекст. Имея узел элемента , вы всегда можете получить для рисования контекст при помощи метода getContext()
Проверка поддержки
Ранее уже упоминалось, что в браузерах, которые не поддерживают <canvas>
отображается запасное содержимое. Но помимо этого, определить, поддерживает ли браузер canvas
, можно прямо из кода, проверив наличие метода getContext()
. Код с запасным содержимым, который мы приводили Выше, становится следующим:
var canvas = document.getElementById('tutorial');
if (canvas.getContext){
var ctx = canvas.getContext('2d');
} else {
}
Зачем использовать тег HTML 5 Canvas?
Простите мне мое невежество, но я очень новичок на арене HTML 5 и никогда не работал с графикой, использующей Javascript.
Я немного читал и наткнулся на тег Canvas, и источник заявил, что тег canvas действует как графический контейнер и используется для визуализации графики на веб-странице с помощью Javascript.
Мои вопросы таковы: почему мне нужно использовать Canvas в качестве заполнителя для рендеринга графики, а не использовать какой-то другой произвольный тег, который можно использовать, например, в качестве графического заполнителя?
javascript htmlПоделиться Источник Draco 09 сентября 2011 в 13:23
7 ответов
- Почему все считают canvas эксклюзивной функцией HTML 5?
Почему элемент рисования canvas считается эксклюзивной функцией HTML 5 веб-дизайнерами? Черт возьми, я помню, как использовал его для создания виджетов панели мониторинга в OS X еще в 2008 году. Это даже сработало для Safari. И это было в HTML 4. Был ли тогда только Safari, который поддерживал…
- html 5 canvas ширина линии
Какие методы линии html canvas позволили бы мне изменить ширину линии, когда я рисую линию? В этом примере используется последняя ширина линии для всех сегментов линии. <!DOCTYPE HTML> <html> <head> </head> <body> <canvas id=myCanvas width=578…
24
Тег <canvas>
точно такой же, как тег <img>
, с той разницей, что вместо загрузки изображения из сети вы можете нарисовать его самостоятельно с помощью кода javascript.
Вы можете рисовать линии, круги, заполненные полигоны, градиенты и матричные изображения. Вы также можете перерисовать содержимое холста в цикле, чтобы сделать анимацию.
Чтобы увидеть, что вы можете сделать с простым canvas 2d (нет webgl, просто стандартный рендеринг 2d), взгляните на эту небольшую демонстрацию или посмотрите это видео , Если ваш браузер слишком стар и не поддерживает canvas.
Это чистый javascript, ничего не загружается из сети, все вычисляется в браузере, включая текстуру и трассированное изображение, используемое для envmapping части. Все в одном файле 4KB html.
Вы действительно думаете, что можете сделать то же самое, используя обычные <div>
с ?
EDIT:
Для гораздо более простой демонстрации с читаемым источником вы можете проверить этот вращающийся икосаэдр .
Поделиться 6502 09 сентября 2011 в 13:30
5
Canvas
предназначен для графических манипуляций, а div
-нет. С семантической точки зрения, вы должны использовать Canvas
.
Поделиться Oded 09 сентября 2011 в 13:24
4
Вы не можете рисовать на произвольных элементах.
Поделиться Dave Newton 09 сентября 2011 в 13:25
- Зачем использовать мета-тег «Pragma» и «Expires» в головном разделе html
Зачем использовать мета-тег Pragma и Expires в головном разделе html вот так. Спасибо. <META HTTP-EQUIV=Pragma CONTENT=no-cache> <META HTTP-EQUIV=Expires CONTENT=-1>
- HTML 5 <Canvas>
Вот мой код. Нужна помощь в рисовании изображения cloud между горным ландшафтом с использованием элемента html 5 canvas и кода javascript. <!doctype html> <html> <head> <meta charset=utf-8> <title>Untitled Document</title> <canvas id=myCanvas style=border:2px…
3
Canvas позволяет манипулировать пикселями с приемлемой скоростью. Вы можете рисовать различные фигуры,устанавливать цвета для пикселей и т. д. С помощью div вы можете визуализировать только стандартные элементы HTML.
Поделиться bjornd 09 сентября 2011 в 13:27
2
DIV
-это контейнер для других тегов. CANVAS
-это контейнер для пикселей.
Хотя (вероятно) можно сделать все , что вы хотите сделать с помощью рисования внутри простого DIV
, с CANVAS
браузер семантически знает, что область будет содержать графику, и может использовать эту информацию соответствующим образом.
Браузеры поддерживают различные процедуры рисования для CANVAS
изначально, в то время как вам придется готовить свои собственные полностью в JS для DIV
.
Действительно хорошим ресурсом для получения информации о холсте HTML5 является http:/ / diveintohtml5.ep.io/canvas. html
Поделиться jmtd 09 сентября 2011 в 13:24
1
Зачем использовать холст:
1-canvas безопасен в использовании и совместим с несколькими платформами.
2-у него есть много готовых функций для использования в анимации.
3-Вы можете играть со скоростью, пикселями, цветами.
4 — Вы можете сохранить результат холста в виде изображения.
5 — Вы можете профессионально реализовать игры с холстом. регистрация здесь
просто это действует как flash, но без плагинов.
полезные библиотеки для использования:
— мольберт js: flash как библиотека
— обработка js : Открытая библиотека анимации souece
Поделиться Alex 09 сентября 2011 в 18:16
0
Рисование с использованием
<canvas>
Будет загружаться сразу же при входе на веб-страницу с этим в использовании, где
<img>
Это займет гораздо больше времени.
Поделиться user939222 12 сентября 2011 в 12:40
Похожие вопросы:
Нужно ли JavaScript учиться, чтобы использовать все HTML 5 функций?
В эти дни я изучаю новый элемент HTML5 , где я читаю, что тег canvas -это только контейнер для графики, вы должны использовать скрипт, чтобы на самом деле рисовать графику . Итак, я хочу знать, что…
Как позволить Eclipse принять тег canvas?
Я установил плагин Aptana в свой Eclipse и использую тег canvas в своем файле html. Я нахожу, что Eclipse не может распознать тег canvas, он выделяет мои теги canvas и отображает follow msg: <…
Зачем Google использовать тег шрифта?
Итак, я не мог не заметить, демонстрируя брату браузерную штуку Chrome DOM, что Google использует тег <font size=-2> . Я знаю, что это глупый вопрос, но с точки зрения программирования-зачем…
Почему все считают canvas эксклюзивной функцией HTML 5?
Почему элемент рисования canvas считается эксклюзивной функцией HTML 5 веб-дизайнерами? Черт возьми, я помню, как использовал его для создания виджетов панели мониторинга в OS X еще в 2008 году. Это…
html 5 canvas ширина линии
Какие методы линии html canvas позволили бы мне изменить ширину линии, когда я рисую линию? В этом примере используется последняя ширина линии для всех сегментов линии. <!DOCTYPE HTML>…
Зачем использовать мета-тег «Pragma» и «Expires» в головном разделе html
Зачем использовать мета-тег Pragma и Expires в головном разделе html вот так. Спасибо. <META HTTP-EQUIV=Pragma CONTENT=no-cache> <META HTTP-EQUIV=Expires CONTENT=-1>
HTML 5 <Canvas>
Вот мой код. Нужна помощь в рисовании изображения cloud между горным ландшафтом с использованием элемента html 5 canvas и кода javascript. <!doctype html> <html> <head> <meta…
Что такое canvas в HTML 5?
Что такое canvas в HTML 5? Я немного новичок в качестве разработчика. Canvas-это область HTML, на которой можно рисовать графику. 500 id=mycanvas solid= style=border:1px width=600></canvas>…
Canvas тег в Drupal 8
Я хочу спросить, знает ли кто-нибудь, существует ли тег canvas html в Drupal 8? Я пытаюсь сделать поле формы подписи, поэтому мне нужен canvas. Есть ли вообще возможность рендеринга custom HTML в…
Зачем нам нужен тег <html> , если у нас есть <!DOCTYPE html>?
Зачем нам нужно добавлять тег <html> , если мы уже определили, что этот документ является html с помощью тега <!DOCTYPE html> ? Есть ли какой-нибудь другой тег, который можно добавить…
| HTML (Примеры)
Тег <canvas>
(от англ. canvas — холст) создаёт область, в которой при помощи JavaScript можно рисовать разные объекты, выводить изображения, трансформировать их и менять свойства.
При помощи элемента <canvas>
можно создавать рисунки, анимацию, игры и др.
Синтаксис
<canvas></canvas>
Закрывающий тег обязателен.
Атрибуты
height
- Задаёт высоту холста. По умолчанию 300 пикселей.
width
- Задаёт ширину холста. По умолчанию 150 пикселей.
Также для этого элемента доступны универсальные атрибуты.
Спецификации
Описание и примеры
<!DOCTYPE html>
<html>
<head>
<title>canvas</title>
<meta charset="utf-8" />
<script>
window.onload = function () {
var drawingCanvas = document.getElementById('smile')
if (drawingCanvas && drawingCanvas.getContext) {
var context = drawingCanvas.getContext('2d')
// Рисуем окружность
context.strokeStyle = '#000'
context.fillStyle = '#fc0'
context.beginPath()
context.arc(100, 100, 50, 0, Math.PI * 2, true)
context.closePath()
context.stroke()
context.fill()
// Рисуем левый глаз
context.fillStyle = '#fff'
context.beginPath()
context.arc(84, 90, 8, 0, Math.PI * 2, true)
context.closePath()
context. stroke()
context.fill()
// Рисуем правый глаз
context.beginPath()
context.arc(116, 90, 8, 0, Math.PI * 2, true)
context.closePath()
context.stroke()
context.fill()
// Рисуем рот
context.beginPath()
context.moveTo(70, 115)
context.quadraticCurveTo(100, 130, 130, 115)
context.quadraticCurveTo(100, 150, 70, 115)
context.closePath()
context.stroke()
context.fill()
}
}
</script>
</head>
<body>
<canvas>
<p>Ваш браузер не поддерживает рисование.</p>
</canvas>
</body>
</html>
См. также
Ссылки
Нестандартные HTML-теги. Тег canvas
Нестандартные HTML-теги. Тег canvasCANVAS
настолько нестандартный html-тег, что с ним почти никто не работает, да и знают его не многие. А всё из-за специфичности его использования. Он ведь предназначен для создания графики. И не так уж много проектов используют CANVAS
в своём интерфейсе.
Сам по себе тег CANVAS
устроен таким образом, что внутри него указывается текст, который будет отображаться, если браузер не поддерживает эту технологию. При этом, если браузер поддерживает CANVAS
, то вы увидите пустое белое пространство с размерами, указанными в CSS-свойствах. Создают графику на CANVAS
с помощью JS.
Изначально CANVAS
был создан для возможности создания двумерной графики. На данный момент уже существуют библиотеки, с помощью которых можно создавать трёхмерные изображения. Существует очень много различных JS-библиотек, которые помогают работать с CANVAS
. Вот некоторые из них:
- LibCanvas – библиотека для создания двумерных интерактивных приложений и игр
- CreaetJS – несколько библиотек, позволяющих работать с двумерной графикой, анимацией, аудио и загрузкой объектов
- PhiloGL — фреймворк WebGL для визуализации данных, разработки игр и креативного кодирования
Что же с ним делать?
С помощью CANVAS
можно делать множество интересных вещей. Например, загляните на Хабрахабр, там полно обзоров на самые разные разработки. Недавно мы разрабатывали конструктор-калькулятор памятников с помощью библиотеки Fabric.js. Оценить его можно, например, по этой ссылке.
CANVAS
часто сравнивают с SVG
, так как с помощью SVG
тоже можно делать различные интерактивные элементы, анимации и т.д. Но CANVAS может манипулировать SVG-элементами, в то время как SVG
содержит в себе только отдельные векторные элементы. В CANVAS
можно манипулировать любым пикселем, тогда как SVG
управляет только path-ами. Также в CANVAS
можно задавать для изображений фильтры.
Понравилось? Поделитесь статьей в социальных сетях:
На нашем сайте используются файлы cookies, которые делают его более удобным для каждого пользователя. Посещая страницы сайта, вы соглашаетесь с нашей Политикой конфиденциальности. Подробнее ознакомиться с политикой и тем, для чего именно необходимы файлы cookies, можете узнать здесь
Свяжитесь с нами
Оставьте свои контактные данные, и наши менеджеры расскажут и покажут Вам все возможности разрабатываемых нами сайтов.
Начните проект
вместе с нами, и ваши идеи воплотятся в жизнь
Спасибо за заявку!
Наш менеджер скоро с Вами свяжется.
Walnut Team
Canvas. Идентификаторы, теги и анимация. Урок 10 курса «Tkinter»
Изучив размещение геометрических примитивов на экземпляре Canvas, в этом уроке рассмотрим, как можно обращаться к уже созданным фигурам для изменения их свойств, а также создадим анимацию.
В Tkinter существует два способа «пометить» фигуры, размещенные на холсте, – это идентификаторы и теги. Первые всегда уникальны для каждого объекта. Два объекта не могут иметь одни и тот же идентификатор. Теги не уникальны. Группа объектов на холсте может иметь один и тот же тег. Это дает возможность менять свойства всей группы. Отдельно взятая фигура на Canvas может иметь как идентификатор, так и тег.
Идентификаторы
Методы, создающие фигуры на холсте, возвращают численные идентификаторы этих объектов, которые можно присвоить переменным, через которые позднее обращаться к созданным фигурам.
from tkinter import * root = Tk() c = Canvas(width=300, height=300, bg='white') c.focus_set() c.pack() ball = c.create_oval(140, 140, 160, 160, fill='green') c.bind('<Up>', lambda event: c.move(ball, 0, -2)) c.bind('<Down>', lambda event: c.move(ball, 0, 2)) c.bind('<Left>', lambda event: c.move(ball, -2, 0)) c.bind('<Right>', lambda event: c.move(ball, 2, 0)) root.mainloop()
В данном примере круг двигается по холсту с помощью стрелок на клавиатуре. Когда создавался круг, его идентификатор был присвоен переменной ball. Метод move
объекта Canvas принимает идентификатор и смещение по осям.
С помощью метода itemconfig
можно изменять другие свойства. Метод coords
устанавливает новые координаты фигуры, если они заданы. Если указывается только идентификатор или тег, то coords
возвращает текущие координаты.
from tkinter import * root = Tk() c = Canvas(width=200, height=200, bg='white') c.pack() rect = c.create_rectangle( 80, 80, 120, 120, fill='lightgreen') def in_focus(event): c.itemconfig(rect, fill='green', width=2) c.coords(rect, 70, 70, 130, 130) c.bind('<FocusIn>', in_focus) root.mainloop()
Здесь при получении холстом фокуса (нажать Tab) изменится цвет и размер квадрата.
Теги
В отличие от идентификаторов, которые являются уникальными для каждого объекта, один и тот же тег может присваиваться разным объектам. Дальнейшее обращение к такому тегу позволит изменить все объекты, в которых он был указан. В примере ниже эллипс и линия содержат один и тот же тег, а функция color
изменяет цвет всех объектов с тегом group1
. Обратите внимание, что в отличие от имени идентификатора (переменная), имя тега заключается в кавычки (строковое значение).
from tkinter import * def color(event): c. itemconfig('group1', width=3, fill="red") root = Tk() c = Canvas(width=460, height=150, bg='white') c.pack() oval = c.create_oval(30, 10, 130, 80, tag="group1") c.create_line(10, 100, 450, 100, tag="group1") c.bind('<Button-3>', color) root.mainloop()
Метод tag_bind
позволяет привязать событие (например, щелчок кнопкой мыши) к определенной фигуре на Canvas. Таким образом, можно реализовать обращение к различным областям холста с помощью одного и того же события. Пример ниже иллюстрирует, как изменения на холсте зависят от того, где произведен клик.
from tkinter import * def oval_func(event): c.delete(oval) c.create_text(80, 50, text="Круг") def rect_func(event): c.delete("rect") c.create_text(230, 50, text="Прямоугольник") def triangle(event): c.delete(trian) c.create_text(380, 50, text="Треугольник") c = Canvas(width=460, height=100, bg='grey80') c. pack() oval = c.create_oval(30, 10, 130, 80, fill="orange") c.create_rectangle(180, 10, 280, 80, tag="rect", fill="lightgreen") trian = c.create_polygon( 330, 80, 380, 10, 430, 80, fill='white', outline="black") c.tag_bind(oval, '<Button-1>', oval_func) c.tag_bind("rect", '<Button-1>', rect_func) c.tag_bind(trian, '<Button-1>', triangle) mainloop()
Метод delete
удаляет объект. Если нужно очистить холст, то вместо идентификаторов или тегов используется константа ALL
.
Практическая работа. Анимация в tkinter
В данной программе создается анимация круга, который движется от левой границы холста до правой:
from tkinter import * def motion(): c.move(ball, 1, 0) if c.coords(ball)[2] < 300: root.after(10, motion) root = Tk() c = Canvas(root, width=300, height=200, bg="white") c.pack() ball = c. create_oval(0, 100, 40, 140, fill='green') motion() root.mainloop()
Выражение c.coords(ball)
возвращает список текущих координат объекта (в данном случае это ball). Третий элемент списка соответствует его второй координате x.
Метод after
вызывает функцию, переданную вторым аргументом, через количество миллисекунд, указанных первым аргументом.
Изучите приведенную программу и самостоятельно запрограммируйте постепенное движение фигуры в ту точку холста, где пользователь кликает левой кнопкой мыши. Координаты события хранятся в его атрибутах x
и y
(event.x
, event.y
).
Курс с примерами решений практических работ: android-приложение, pdf-версия.
Тег canvas. HTML справочник | Vaden Pro
Характеристики тега
В каких браузерах работает?
9. 0+ | 6.0+ | 9.6+ | 3.1+ | 4.0+ | 2.1+ | 3.0+ |
В каких спецификациях используется?
Для чего используется?
Тег позволяет выбрать область, в пределах которой можно будет рисовать, корректировать рисунки и менять их исходные параметры. Процесс рисования выполняется через особые скрипты. Общепринято использовать в качестве языка программирования для подобных случаев — JavaScript. Цвета линий и расскрас рисунка контролируется тоже через скрипты.
Тег <canvas>
позволяет создавать не только рисунки, но и анимации, игры и прочее. Довольно часто <canvas>
используют для отрисовки графиков зависимостей функций. Это позволяет не прибегать к документу XHTML и его графическим дополнениям, а использовать формат HTML. Возможности данного тега не ограничиваются анимациями, графиками и играми. Умелый веб-разработчики через этот тег создают целые проигрыватели медиа файлов и плееры для воспроизведения музыки и видео.
Сanvas имеет потенциальную возможность обезопасить веб-ресурс от хакерских атак, усложнив каптчу. Суть процесса заключается в том, что в качестве каптчи выступает не картинка, а набор точек, через которые скрипт пишет нужное содержимое для проверки.
Стоит также отметить, что в старых спецификациях HTML этот тег не упоминается. Сведения о нем можно найти только в последней версии HTML 5.
Известно, что <canvas>
предназначен для отрисовки только двухмерных рисунков, однако сегодня компания Mozilla Foundation развивает проект, который позволит в canvas рисовать трехмерные объекты. Это будет реализовано благодаря добавки к функционалу ускорители графики нижних уровней.
Как правильно задавать?
<canvas></canvas>
Какие атрибуты поддерживаются?
- height — определяет высоту области, на которой выполняется рисунок. Изначально тег задает высоту в 300 пикселей.
- width — определяет ширину области, на которой выполняется рисунок. Изначально тег задает ширину в 150 пикселей.
В дополнение этого, тег поддерживает универсальные атрибуты и события.
Закрытый тег
Да.
Пример использования
<!DOCTYPE html> <html> <head> <title>Тег canvas</title> <meta charset="utf-8"> <script> window.onload = function() { var drawingCanvas = document.getElementById('smile'); if(drawingCanvas && drawingCanvas.getContext) { var context = drawingCanvas.getContext('2d'); // скрипт для вывода окружности context.strokeStyle = "#000"; context.fillStyle = "#00ccff"; context.beginPath(); context.arc(150,150,75,0,Math.PI*2,true); context.closePath(); context.stroke(); context.fill(); // скрипт для глаз context.fillStyle = "#b8f4ff"; context.beginPath(); context.arc(126,135,12,0,Math.PI*2,true); context.closePath(); context.stroke(); context.fill(); // скрипт для улыбки context. beginPath(); context.moveTo(105,173); context.quadraticCurveTo(150,195,195,173); context.quadraticCurveTo(150,225,105,173); context.closePath(); context.stroke(); context.fill(); } } </script> </head> <body> <canvas> <p>Рисунок не удался</p> </canvas> </body> </html>
По итогу получаем
Пример показывает, посредством которых простейших функций JavaScript получают картинки. Также пример показывает, как ориентироваться в активном поле Сanvas при указании координат расположения ключевых составляющих изображения. Также для рисунка закодированы команды изменения цвета рисунка. Кодировка цвета в скриптовом коде ничем не отличается от стандартных веб-цветов и шестнадцатеричной системы.
Тег canvas — растровый холст.
Тег canvas предоставляет растровый холст, который может быть использован для рендеринга графики, игровой графики и других визуальных образов на лету.
Авторы не должны использовать canvas элемент в документе, когда доступен более подходящий элемент. Например, нецелесообразно использовать canvas элемент для отображения заголовкa страницы: если желаемое представление заголовка должно быть размечено с использованием соответствующих элементов (как правило, h2), а затем с помощью стилей CSS и поддержкой таких технологий, как XBL.
Когда авторы используют тег canvas, они также должны отдавать контент который передает по существу ту же функцию или цель как и растровые изображения. Эти материалы могут быть размещены внутри canvas элемента. Контент canvas элемента, если таковой имеется, является резервным содержимым.
В интерактивных визуальных медиа средствах, если поддержка сценариев включена для canvas элемента он представляет встроенный контент, состоящий из динамически создаваемых изображений.
В неинтерактивных, статических визуальных средствах массовой информации, если canvas элемент был ранее отрисован (например, если страница была просмотрена в интерактивной визуальной среде и в настоящее время находится в печати, или если некоторые сценарии находятся в процессе отрисовки страницы), то canvas элемент представляет встроенный контент с текущим изображением и размером. В противном случае, элемент представляет свой резервный контент .
В не-визуальных средствах массовой информации, и в визуальных средствах массовой информации, с отключеной поддержкой сценариев для графического элемента или если поддержка canvas элементов была отключена, canvas элемент представляет резервный контент.
Когда canvas элемент представляет встроенный контент, пользователь может сосредоточиться на вложенном контенте (в резервном содержании). Если элемент находится в фокусе, он является объектом взаимодействия с клавиатурой (хотя сам элемент не виден). Это позволяет авторам сделать интерактивное полотно (холст) с клавиатурным доступом. Авторы должны иметь разметку один-к-одному в виде интерактивных регионов в резервном содержании. (Фокус не оказывает никакого влияния на события мыши.)
Графический элемент имеет два атрибута для управления размером пространства координат: width
и
height
(ширина и высота). Эти атрибуты, когда указаны, должны иметь значения, которые являются действительными неотрицательными целыми числами. Правила для разбора целых неотрицательных должны быть использованы для получения их числовых значений. Если атрибут отсутствует, или если разбор его значений возвращает ошибку, то должно использоваться значение по умолчанию.
width
атрибут по умолчанию 300, а height
атрибут по умолчанию до 150.
: элемент графического полотна — HTML: язык разметки гипертекста
Атрибуты этого элемента включают в себя глобальные атрибуты.
-
высота
- Высота координатного пространства в пикселях CSS. По умолчанию 150.
-
moz-opaque
Этот API не стандартизирован. Этот устаревший API больше не следует использовать, но, вероятно, он по-прежнему будет работать. - Сообщает полотну, будет ли полупрозрачность фактором.Если холст знает, что нет полупрозрачности, производительность рисования можно оптимизировать. Это поддерживается только браузерами на основе Mozilla; используйте вместо него стандартизованный
canvas.getContext ('2d', {alpha: false})
. -
ширина
- Ширина координатного пространства в пикселях CSS. По умолчанию 300.
Альтернативный контент
Вы можете (и должны) предоставить альтернативный контент внутри блока . Этот контент будет отображаться как в старых браузерах, которые не поддерживают холст, так и в браузерах с отключенным JavaScript.Предоставление полезного резервного текста или суб-модели DOM помогает сделать холст более доступным.
Обязательный тег
В отличие от элемента
, элемент требует закрывающего тега (
).
Изменение размера холста с помощью CSS по сравнению с HTML
Отображаемый размер холста можно изменить с помощью CSS, но если вы это сделаете, изображение будет масштабировано во время рендеринга, чтобы соответствовать размеру стиля, что может привести к окончательному рендерингу графики. искаженный.
Лучше указать размеры холста, установив атрибуты width
и height
непосредственно в элементах , либо непосредственно в HTML, либо с помощью JavaScript.
Максимальный размер холста
Максимальный размер элемента очень велик, но точный размер зависит от браузера. Ниже приведены некоторые данные, которые мы собрали из различных тестов и из других источников (например, Stack Overflow):
Браузер | Максимальная высота | Максимальная ширина | Максимальная площадь |
---|---|---|---|
Хром | 32767 пикселей | 32767 пикселей | 268 435 456 пикселей (т.е., 16,384 х 16,384) |
Firefox | 32767 пикселей | 32767 пикселей | 472 907 776 пикселей (т. Е. 22 528 x 20 992) |
Safari | 32767 пикселей | 32767 пикселей | 268 435 456 пикселей (т. Е. 16 384 x 16 384) |
IE | 8192 пикселей | 8192 пикселей | ? |
Примечание : Превышение максимальных размеров или площади делает холст непригодным для использования — команды рисования не будут работать.
HTML
Этот фрагмент кода добавляет элемент холста в ваш HTML-документ. Резервный текст предоставляется, если браузер не может отобразить холст или если не может прочитать холст.
<холст>
Альтернативный текст, описывающий, что отображает ваш холст.
JavaScript
Затем в коде JavaScript вызовите HTMLCanvasElement.getContext ()
, чтобы получить контекст рисования и начать рисование на холсте:
const холст = документ.querySelector ('холст');
const ctx = canvas.getContext ('2d');
ctx.fillStyle = 'зеленый';
ctx.fillRect (10, 10, 100, 100);
Результат
Альтернативное содержимое
Элемент сам по себе является растровым изображением и не предоставляет информацию о каких-либо нарисованных объектах. Содержимое холста не предоставляется инструментам доступности, как семантический HTML. В общем, вам следует избегать использования холста на доступном веб-сайте или в приложении. Следующие руководства помогут сделать его более доступным.
Таблицы BCD загружаются только в браузере
Тег HTML 5
Тег HTML используется для создания графики «на лету». Его можно использовать для рендеринга графиков, игровой графики или других визуальных изображений.
Для рисования на холсте тег используется вместе с методом
getContext (contextId)
.
Любое содержимое между тегами
является «резервным содержимым», то есть оно будет отображаться только в том случае, если холст не может быть отображен.
Тег был введен в HTML 5.
Атрибуты
HTML-теги могут содержать один или несколько атрибутов. Атрибуты добавляются к тегу, чтобы предоставить браузеру дополнительную информацию о том, как тег должен выглядеть или вести себя. Атрибуты состоят из имени и значения, разделенных знаком равенства (=), при этом значение заключено в двойные кавычки.Вот пример: style = "color: black;"
.
Есть 3 вида атрибутов, которые вы можете добавлять в свои HTML-теги: специфичные для элемента, глобальные атрибуты и атрибуты содержимого обработчика событий.
Атрибуты, которые вы можете добавить к этому тегу, перечислены ниже.
Атрибуты, зависящие от элемента
В следующей таблице показаны атрибуты, относящиеся к этому тегу / элементу.
Атрибут | Описание |
---|---|
ширина | Задает ширину холста в пикселях.Значение по умолчанию — 300. Возможные значения: [Целое неотрицательное число] (например, 300) |
высота | Задает высоту холста в пикселях. Значение по умолчанию — 150. Возможные значения: [Целое неотрицательное число] (например, 150) |
Глобальные атрибуты
Следующие атрибуты являются стандартными для всех тегов HTML 5 (хотя атрибут tabindex
не применяется к элементам dialog
).
-
ключ доступа
-
автокапитализация
-
класс
-
с контентом
-
данные- *
-
дирек
-
перетаскиваемый
-
скрыто
-
id
-
режим ввода
-
-
-
идентификатор товара
-
itemprop
-
itemref
-
позиций сфера действия
-
тип позиции
-
язык
-
часть
-
слот
-
проверка орфографии
-
стиль
-
tabindex
-
титул
-
перевести
Полное описание этих атрибутов см. В разделе «Глобальные атрибуты HTML 5».
Атрибуты содержимого обработчика событий
Атрибуты содержимого обработчика событий позволяют вызывать сценарий из HTML-кода. Сценарий вызывается при наступлении определенного «события». Каждый атрибут содержимого обработчика событий имеет дело с отдельным событием.
-
onabort
-
onauxclick
-
onblur
-
отмена
-
oncanplay
-
oncanplaythrough
-
на замену
-
onclick
-
вкл.
-
контекстное меню
-
копия
-
на смену
-
врезка
-
ondblclick
-
ондраг
-
ондрагенд
-
ондрагентер
-
ондрагэксит
-
ondragleave
-
ондраговер
-
ондрагстарт
-
на капле
-
на срок обмена
-
одноразовый
-
завершено
-
ошибка
-
onfocus
-
onformdata
-
на входе
-
недействительно
-
нажатие клавиши
-
onkeypress
-
onkeyup
-
onlanguagechange
-
загрузка
-
onloadeddata
-
загруженные метаданные
-
onloadstart
-
onmousedown
-
onmouseenter
-
onmouseleave
-
onmousemove
-
onmouseout
-
на мышке над
-
onmouseup
-
паста
-
на паузе
-
в игре
-
в игре
-
в процессе
-
обмен
-
возврат
-
по размеру
-
в прокрутке
-
нарушение политики безопасности
-
востребовано
-
в поиске
-
при выборе
-
на смену
-
установленная
-
при подаче
-
приостановлено
-
ontimeupdate
-
рычаг
-
по объему Изменение
-
ожидает
-
на колесе
Полный список обработчиков событий см. В разделе Атрибуты содержимого обработчика событий HTML 5.
Облако тегов HTML5 Canvas
Перейти к:
TagCanvas — это класс Javascript, который будет рисовать и анимировать HTML5. холст Облако тегов на основе
. Я выпускаю его с открытым исходным кодом
по лицензии LGPL v3. Ниже приведен пример.
Поскольку холст является частью HTML-страницы, вы можете размещать элементы выше или ниже.
ЗакрыватьЕсли это выглядит как небольшое статическое изображение, ваш браузер не поддерживает тег холста.Пожалуйста, попробуйте еще раз, используя другой браузер, или попробуйте представить текст кружение в ответ на положение мыши.
Используйте текстовые ссылки Используйте ссылки на изображения Фоновая картинка
Форма облака: цилиндр цилиндр hring vring сфера
Вы нажали: … пока ничего!
В приведенном выше примере я заменил все ссылки на onclick
обработчики, чтобы вы не попали на другую страницу при нажатии на любую из
теги.
TagCanvas в Internet Explorer
Холст Элемент
не поддерживается Internet Explorer
версии до версии 8 включительно. Однако указанное выше облако тегов должно быть
работа в IE благодаря включаемому файлу ExplorerCanvas Javascript
который переводит функции холста в IE VML. Это немного медленно, но это действительно так
работай. По большей части.
На момент написания вы должны использовать последнюю транковую версию ExplorerCanvas, так как текущая версия в области загрузок проекта не иметь необходимую поддержку вывода текста.
Еще раз обратите внимание: исчезновение тегов изображений с расстоянием не работает с текущая версия Explorer Canvas. Я создал модифицированную версию excanvas.js, чтобы он работал, который вы можете получить отсюда. Если вы не используете теги изображений или не хотите, чтобы изображения исчезали с расстоянием, тогда вам следует использовать последнюю версию с сайта кода Google, указанного выше.
Internet Explorer 9 поддерживает элемент холста, поэтому excanvas. js не требуется. Условный комментарий, необходимый для включения excanvas.js для более ранних версий следует выглядят так:
Изображения
TagCanvas 1.3 была первой версией, поддерживающей ссылки на изображения — первое изображение найденный внутри ссылки будет использоваться вместо любого текста. Нажмите «Использовать изображение» ссылки »под примером облака тегов выше, чтобы увидеть его в действии.
Акселерометр / датчик движения
Если вы используете ноутбук с новым браузером, обратите внимание на страница акселерометра, чтобы увидеть, что происходит когда я узнаю, что оборудование, о котором я не знал, доступно из браузер.
Вес тегов
Начиная с версии 1.6 TagCanvas поддерживает взвешивание тегов. Взгляните на TagCanvas с взвешенными на странице тегов для получения более подробной информации и примера.
Другие примеры
Это еще один холст
И еще один холст
Еще два соседних примера. Щелчок по тегу в первом перезагружает второй с другим содержимым.
Загрузки
Сценарий TagCanvas доступен как отдельная версия и как jQuery. плагин.Обе версии доступны в виде полного исходного кода и уменьшенной версии в таблице. ниже.
Если на вашем веб-сайте уже используется jQuery, то версия плагина jQuery является один для тебя. Если вы используете другую библиотеку Javascript или вообще не используете ее, автономная версия будет работать сама по себе.
Если вы не собираетесь изменять код сценария TagCanvas, вам следует используйте минифицированную версию скрипта — миниатюрные версии есть вокруг На 30% меньше, чем у несжатых версий.
Уменьшенные версии файлов были сжаты с использованием Yahoo! Компрессор YUI.
Загрузите мою модифицированную версию Explorer Canvas здесь: excanvas.zip. Исходный код Explorer Canvas находится на Сайт с кодом Google.
Проекты с использованием TagCanvas
Некоторым разработчикам удалось сделать больше с TagCanvas, поэтому я с удовольствием свяжу к их работе здесь. Если вам известны другие проекты, в которых используется TagCanvas, дайте мне знать, и я добавлю их в список.
Помогите!
Как обычно, этот код не дает никаких гарантий. Но если вы застряли, обнаружите какие-либо ошибки или у вас есть предложения по улучшению, свяжитесь со мной по обычный адрес: graham (at) goat1000.com.
«Вернуться к началу страницы Инструкции по установке »
Тег HTMLcanvas — Studytonight
Тег HTML был введен в HTML5 для отображения 2D-форм и графики на веб-странице с использованием JavaScript.Этот тег позволяет создавать графиков , игр , изображений и других визуальных элементов на веб-странице.
По умолчанию тег
Тег может использоваться для применения различных преобразований, таких как поворот и размытие на изображении.
Содержимое , которое определено между начальным и конечным тегами , отображается только , если браузер не поддерживает тег холста.
Максимальный размер тега составляет очень большой , но его точный размер зависит только от браузера.
Кроме того, это элемент уровня блока .
HTML
Тег — синтаксис и использование Для элемента требуется начальный (открывающий) тег , и конечный (закрывающий) тег .
<холст>
...
HTML
Атрибуты тега Тег поддерживает глобальные атрибуты и атрибуты событий. Некоторые из общих атрибутов, используемых с этим тегом, приведены ниже:
Атрибуты | Описание |
высота | Этот атрибут используется для указания высоты холста в пикселях. |
ширина | Этот атрибут используется для указания ширины холста в пикселях. |
moz-непрозрачный | Этот атрибут используется для управления прозрачностью холста |
id | Атрибут id используется для указания уникального имени элемента. Атрибут id элемента холста используется для получения ссылки на холст в Javascript для добавления к нему графики. |
стиль | Атрибут стиля используется для указания кода стиля CSS. |
HTML
Базовый пример тега В этом разделе мы рассмотрим несколько примеров тега , чтобы помочь вам понять, как мы можем его использовать.
1. Простой тег холста
В приведенном ниже HTML-коде мы только что использовали тег
Простой холст
Будет просто ширина по умолчанию 300 пикселей и высота 150 пикселей .
Мы можем использовать атрибут style
, чтобы добавить стиль к этому тегу, например, добавить границу, чтобы узнать границы холста.См. Пример кода ниже:
Простой холст