Чтение онлайн

ЖАНРЫ

HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов

Дронов Владимир

Шрифт:

Свойство textAlign позволяет задать горизонтальное выравнивание выводимого текста относительно точки, в которой он будет выведен (координаты этой точки задаются вторым и третьим параметрами методов strokeText и fillText). Это свойство может принимать следующие значения:

— "left" — выравнивание по левому краю;

— "right" — выравнивание по правому краю;

— "start" — выравнивание по левому краю, если текст выводится по направлению слева направо, и по правому краю в противном случае (значение по умолчанию);

— "end" — выравнивание по правому

краю, если текст выводится по направлению слева направо, и по левому краю в противном случае;

— "center" — выравнивание по центру.

Пример:

ctxCanvas.fillStyle = "yellow";

ctxCanvas.font = "italic 12pt Verdana";

ctxCanvas.textAlign = "center";

ctxCanvas.fillText("Всем пока!", 100, 100);

Свойство textBaseline позволяет задать вертикальное выравнивание выводимого текста относительно точки, в которой он будет выведен. Это свойство может принимать следующие значения:

— "top" — выравнивание по верху прописных (больших) букв;

— "hanging" — выравнивание по верху строчных (маленьких) букв;

— "middle" — выравнивание по середине строчных букв;

— "alphabetic" — выравнивание по базовой линии букв европейских алфавитов

(значение по умолчанию);

— "ideographic" — выравнивание по базовой линии иероглифических символов

(она находится чуть ниже базовой линии букв европейских алфавитов);

— "bottom" — выравнивание по низу букв. Пример:

ctxCanvas.fillStyle = "yellow";

ctxCanvas.font = "italic 12pt Verdana";

ctxCanvas.textAlign = "center";

ctxCanvas.textBaseline = "top";

ctxCanvas.fillText("Всем пока!", 100, 100);

Использование сложных цветов 

Ранее для линий и заливок у нас были только простые, однотонные, цвета. Настала пора познакомиться со средствами канвы для создания и использования сложных цветов: градиентных и графических.

Линейный градиентный цвет

В линейном градиентном цвете (или просто линейном градиенте) один простой цвет плавно переходит в другой при движении по прямой линии. Пример такого цвета — окраска заголовка окна в Windows 2000 и более поздних версиях Windows при выборе классической темы; там синий цвет плавно перетекает в белый.

Линейный градиентный цвет создают в три этапа.

Первый этап — вызов метода createLinearGradient — собственно создание линейного градиентного цвета:

<контекст рисования>.createLinearGradient(<горизонтальная координата начальной точки>,<вертикальная координата начальной точки>,<горизонтальная координата конечной точки>,<вертикальная координата конечной точки>)

Параметры этого метода определяют координаты начальной и конечной точки воображаемой прямой, по которой будет "распространяться" градиент. Они отсчитываются

относительно канвы и задаются в пикселах в виде чисел.

Метод createLinearGradient возвращает экземпляр объекта CanvasGradient, представляющий созданный нами линейный градиент. Мы используем его для указания цветов, формирующих градиент.

Вот выражение, создающее линейный градиент, который будет "распространяться" по прямой с координатами начальной и конечной точек [0,0] и [100,50], и помещающее его в переменную lgSample:

var lgSample = ctxCanvas.createLinearGradient(0, 0, 100, 50);

Второй этап — расстановка так называемых ключевых точек градиента, определяющих позицию, в которой будет присутствовать "чистый" цвет. Между ключевыми точками будет наблюдаться переход между цветами. Таких ключевых точек может быть сколько угодно.

Ключевую точку ставят, вызвав метод addColorStop объекта CanvasGradient:

<градиент>.addColorStop(<положение ключевой точки>, <цвет>)

Первый параметр определяет относительное положение создаваемой ключевой точки на воображаемой прямой, по которой "распространяется" градиент. Он задается в виде числа от 0.0 (начало прямой) до 1.0 (конец прямой). Второй параметр задает цвет, который должен присутствовать в данной ключевой точке, в виде строки; при этом допустимы все форматы описания цвета, упомянутые в начале этой главы.

Метод addColorStop не возвращает значения. Пример:

lgSample.addColorStop(0, "black");

lgSample.addColorStop(0.4, "rgba(0, 0, 255, 0.5)");

lgSample.addColorStop(1, "#FF0000");

Этот Web-сценарий создает на полученном нами ранее линейном градиенте три ключевые точки:

— расположенную в начальной точке воображаемой прямой и задающую черный цвет;

— расположенную в точке, отстоящей на 40 % длины воображаемой прямой от ее начальной точки, и задающую полупрозрачный синий цвет;

— расположенную в конечной точке воображаемой прямой и задающую красный цвет.

Третий этап — собственно использование готового линейного градиента. Для этого представляющий его экземпляр объекта CanvasGradient следует присвоить свойству strokeStyle или fillStyle. Первое свойство, как мы помним, задает цвет линий

контуров, а второе — цвет заливок:

ctxCanvas.fillStyle = lgSample;

А теперь нам нужно рассмотреть один очень важный вопрос. И рассмотрим мы его на примере созданного ранее градиента.

Предположим, что мы нарисовали на канве три прямоугольника и применили к ним наш линейный градиент. Первый прямоугольник нарисован в точке [0,0] (в начале воображаемой прямой градиента, в смысле, в его первой ключевой точке), второй — в точке [30,20] (во второй ключевой точке), третий — в точке [80,40] (в конце градиента — его третьей ключевой точке). Иначе говоря, мы "расставили" наши прямоугольники во всех ключевых точках градиента.

Как будут окрашены эти прямоугольники? Давайте посмотрим.

Поделиться с друзьями: