2. Уроки Canvas. Основы. Элемент HTML5 Canvas
Элемент HTML5 Canvas является HTML тегом похожим на <div>, <a> или <table>, с той лишь разницей что содержимое этого тега генерируется JavaScript. Для того чтобы использовать HTML5 Canvas вам нужно разместить тег где-нибудь внутри вашего HTML, создать функцию инициализации JavaScript которая после загрузки страницы обращается к тегу Canvas, а затем использует HTML5 Canvas API для рисования того что вы захотите.
Шаблон HTML5 Canvas
Простейший:
<!DOCTYPE HTML> <html> <head> <script> window.onload = function() { var canvas = document.getElementById("myCanvas"); var context = canvas.getContext("2d"); // код для отрисовки }; </script> </head> <body> <canvas id="myCanvas" width="578" height="200"></canvas> </body> </html>
С использованием jQuery и проверкой на поддержку тега браузером
<!DOCTYPE HTML> <html> <head> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> <script> $(function() { var canvas = document.getElementById("myCanvas"); if (canvas.getContext){ var context = canvas.getContext("2d"); // код для отрисовки } else { // сообщение о том что браузер не поддерживает canvas } }); </script> </head> <body> <canvas id="myCanvas" width="578" height="200"></canvas> </body> </html>
Описание элемента HTML5 Canvas
Приведенные выше код будет шаблоном-основой для всех ваших будущих проектов с использованием Canvas. Для него нужно задать высоту и ширину, она задается так-же как и для остальных HTML тегов. Т.е. этой строкой:
<canvas id="myCanvas" width="578" height="200"></canvas>
Мы создали элемент Canvas и задали для него ширину 578px и высоту 200px, ее можно задавать и с использованием CSS, что более предпочтительно. И присвоили ему id, по которому мы будем получать доступ к объекту DOM в JS
Контент внутри тега будет отображен в браузерах не поддерживающих canvas. Туда можно вставить просто картинку или текстовую информацию которая может понадобиться пользователю если вдруг его браузер не поддерживает Canvas.
Но тут есть нюанс в браузере Apple Safari закрывающий тег Canvas игнорируется, т.е. браузер Canvas поддерживает, но сообщение все-равно будет выводится, для того чтоб оно там не отображалось нужно будет применить CSS хаки на которых мы не будем останавливаться.
<canvas>Ваш браузер не поддерживает canvas</canvas>
Далее в инициализирующей функции мы получаем доступ к объекту DOM Canvas используя его идентификатор.
Canvas изначально пустой, и для того, чтобы что-либо отобразить, скрипту необходимо получить контекст отрисовки и рисовать уже на нём для этого нужно получить доступ к двумерному контексту отрисовки используя метод getContext (). Этот метод принимает один параметр - тип контекста. Т.к. на данный момент данный момент 2D контекст является единственным определённым контекстом мы используем его, вероятно потом добавится 3D контекст основанный на OpenGL ES
Теперь вернемся в выводу сообщения в случае если браузер не поддерживает Canvas, т.к. способ с добавлением внутрь тега не является кроссбраузерным есть еще способ с использованием JavaScript
<!DOCTYPE HTML> <html> <head> <script> window.onload = function() { var canvas = document.getElementById("myCanvas"); if (canvas.getContext){ var context = canvas.getContext("2d"); // код для отрисовки } else { // сообщение о том что браузер не поддерживает canvas } }; </script> </head> <body> <canvas id="myCanvas" width="578" height="200"></canvas> </body> </html>
Немного о двумерном контексте
Принцип работы двумерного контекста используемого в HTML5 Canvas аналогичен используемому в ActionScript, Processing. Он использует стандартную систему координат Cartesian, с начальной точкой (0, 0), расположенной с левой верхней стороны. Где первое значение это координата точки x, а второе - точки y. Движение вправо будет увеличивать значение объекта по оси x, в то время как движение вниз, будет увеличивать значения точек объекта по оси y.
Одна единица данной системы координат равняется одному пикселю вашего экрана (в большинстве случаев).
4 комментария
Вы можете оставить комментарий