Анонсы:
|
JavaScript. Графика и эффекты анимацииЗанимаясь разработкой Web-страниц, вы можете проявить себя не только как писатель, но как и режиссер. Мир Интернет динамичен и полон движения. Эффекты анимации позволят привлечь внимание посетителей Web-страницы и выделить наиболее важные информационные блоки. Но будьте сдержаны, применяя спецэффекты. Анимация должна привлекать, но не отвлекать внимание посетителей. Обычно для анимации используют графические объекты — изображения в формате GIF, которые сменяют друг друга с определенной частотой, часто по циклу. В результате получается эффект движения или изменения графического изображения. К анимации также относится динамическое изменение или перемещение текста — эффект бегущей строки. Бегущая строкаИнтересный способ привлечь внимание к короткому, но емкому сообщению состоит в использовании бегущей строки. Бегущая строка — это анимационный эффект, при котором строка текста перемещается по странице один раз, несколько раз, или постоянно. Объект MARQUEEДля создания бегущей строки используется специальный дескриптор <MARQUEE>. Атрибуты этого дескриптора контролируют параметры перемещения текста.
Текст заключенный между дескрипторами <MARQUEE>...</MARQUEE>, можно форматировать так же, как обычный текст Web-страницы. Объект бегущей строки, созданный с помощью дескрипторов <MARQUEE>...</MARQUEE>, доступен для динамического редактирования с помощью сценариев
Web-страница содержит именованный объект бегущей строки и форму с тремя кнопками. Щелчок на кнопке выводит текст в бегущей строке и изменяет цвет цвет фона. Все кнопки вызывают на выполнение функцию set_marquee, определенную в сценарии в заголовке Web-страницы. Эта функция принимает в аргументах текст и значение цвета. В строках функции происходит присвоение полученных значений соответствующим атрибутам объекта бегущей строки. Результат выполнения показан на рисунке: Пример:
Эффект бегущей строки поддерживается только в обозревателе Internet Explorer. В других обозревателях текст будет отображаться как обычная строка. Бегущий текст в строке состоянияПоказ сообщений в строке состояния — это не самый лучший способ информирования посетителей Web-страницы, поскольку часто пользователи Интернет не обращают ни малейшего внимания на сообщения в этой части окна обозревателя. Но движущийся текст безусловно привлечет внимание. Чтобы заставить текст двигаться, введите код Web-страницы, показанный ниже.
Полученная Web-страница содержит текстовое поле и две кнопки Первая кнопка, Запустить бегущую строку, извлекает строку из текстового поля и передает ее функции set_phrase (код функций находится в области заголовка Web-страницы). Данная функция добавляет к строке начинающие и замыкающие символы точек, чтобы можно было отделить окончание одной строки от начала следующей в строке состояния. Далее следует вызов функции set_status. Функция set_status работает так.
Таким образом, эффект бегущего текста достигается за счет того, что функция set_status вызывается рекурсивно по бесконечному циклу и на каждом этапе переносит первый символ в конец строки. С помощью таймера устанавливается скорость перемещение строки по полю. Вторая кнопка, Остановить бегущую строку, прекращает рекурсию функции set_status путем очистки таймера. Для этого для переменной таймера timerID вызывается метод clearTimeout. Управление графическими объектамиРисунки на Web-страницы можно добавлять несколькими способами:
Конструктор графических объектовОбъект графического изображения, так же, как другие объекты, создается с помощью ключевого слова new и конструктора графических объектов Image(): Ширина и высота изображения в пикселях задаются целочисленными значениями. Но эти аргумента необязательны и могут быть пропущены. В этом случае создается пустой объект графического изображения. Далее следует связать с этим объектом выбранный графический файл: Как и в случае с дескриптором <IMG>, графический файл рисунка устанавливается в свойстве src. Объект изображения имеет еще одно весьма полезное свойство — complete. Это свойство принимает значение true после завершения выгрузки изображения на Web-страницу. Еще одно отличие графического объекта, созданного с помощью конструктора, от объекта, добавленного в коде HTML. Каждый рисунок, добавленный с помощью дескриптора <IMG>, автоматически становится элементом стандартного массива image. Так, к первому рисунку на странице можно обратиться следующим образом: document.image[0]. Объекты, созданные в сценариях, не становятся элементами массива images. Но мы можем создать пользовательский массив графических объектов: Воспользуемся массивом графических изображений для создания простейшего эффекта анимации. Поместим на Web-страницу ряд цветных картинок, которые будут двигаться по направлению справа налево. Для этого введем следующий код:
Сценарий может показаться сложным, поэтому давайте рассмотрим его подробно. Результат выполнения сценария: Четыре разные картинки в окне обозревателя постоянно сменяют друг друга в направлении справа налево. Бесконечное чередование стрелок обеспечивается следующим циклом в теле функции animate: Переменная index определяет элементы стандартного массива images, тогда как переменная loop используется в качестве индекса массива графических объектов picA, созданного ранее в функции loadimages. В строке document.images[index].src = picA[loop].src; происходит копирование графического объекта из массива picA в элемент массива images, представленного соответствующим дескриптором <IMG> в коде HTML. В результате графический объект становится видимым в окне обозревателя в том месте, где в коде HTML находится соответствующий дескриптор <IMG>. Благодаря строке кода index = (index<3) ? ++index : 0; графические объекты выносятся на экран последовательно. В самом деле, значение переменной index увеличивается на единицу при каждом выполнении цикла, пока не достигнет значения 3, после чего index принимает значение 0. Таким образом, index может быть равным 0, 1, 2, 3. благодаря оператору index-- за телом цикла при каждом новом вызове функции animate начальное значение переменной index смещается с шагом в единицу. Вам может быть не понятно, зачем понадобился сброс таймера: Обратите внимание на функцию checkload, которая проверяет, был ли загружен на Web-страницу последний графический объект. При испытании сценария на своем компьютере эта функция не имеет значение. Но на реальной Web-странице отсутствие проверки может привести к ошибке из-за того, что сценарий обратится к графическому объекту, которого на странице пока еще нет, поскольку он не успел выгрузится по медленной сети. |
Погода в Рудне на 10 Дек 2024 г. 704 - Вьетнамских донгов - 1 |