Главная > Анимация > Мобильный интернет: разработка анимации загрузки при помощи SVG
Мобильный интернет: разработка анимации загрузки при помощи SVG17 января 2013, 13:55. Разместил: Design FactoRy |
Подробности руководства: Технология: мобильный интернет Время на выполнение: 1 час Сложность: средняя * Скачать исходные файлы Внимание! У вас нет прав для просмотра скрытого текста. ![]() Данное руководство расскажет вам о разработке простой анимации загрузки при помощи SVG, которую можно будет использовать на мобильных сайтах. Визуальные индикаторы вроде этого графического элемента, над которым мы сегодня поработаем, используются для обозначения фоновой активности – и это важная составляющая опыта взаимодействия с пользователями. Предварительные условия В данном руководстве предполагается, что вы уже имеете базовые знания в Scalable Vector Graphics (SVG), HTML, CSS, javascript и jQuery. Тем не менее, содержимое статьи представлено в пошаговой манере, поэтому вы без труда все поймете. Что насчет Raphael? В данном руководстве мы воспользуемся проектом Raphael для реализации рисования SVG. Процитируем официальный сайт проекта Raphael: «Raphael использует рекомендации по SVG от W3C, а также VML в качестве основы для создания графики. Это означает, что каждый графический объект, который вы создаете, также является объектом DOM, поэтому у вас будет возможность привязать к нему контроллеры событий javascript, либо позже модифицировать их. Целью Raphael является предоставить переходное устройство, которое упросит процесс рисования векторной графики с кросс-браузерной совместимостью». Чтобы использовать Raphael в вашем проекте, вам просто нужно проследовать по следующим этапам: * Импортируйте библиотеку в вашу веб-страницу. * Создайте объект Raphael, внеся id div-элемента там, где вы хотите отобразить SVG-элемент, следующим образом:
Создайте необходимые вам элементы в только что добавленном объекте Raphael. Например:
Довольно теории! Давайте приступать к разработке кода! Этап 1: Создаем страницу при помощи HTML Давайте начнем разработку нашей первой демо-страницы на HTML. Она должна выглядеть следующим образом:
Последнее, но не менее важное заключается в добавлении ссылки, по которой вы можете кликнуть, чтобы «начать» вращение анимационного элемента.
Этап 2: CSS-оформление Теперь, когда наша разметка готова, нам нужно начать заполнять отсутствующие стили. С точки зрения CSS, самый внешний div (id=”spinnerFullScreen”) должен быть черным, и занимать весь экран поверх всех элементов, которые не принадлежат к нашему анимационному элементу. Два других div’а (id=”floater” и id=”spinner”) используют небольшой хак для правильного центрирования элемента вне зависимости от размеров экрана или расположения ползунка прокрутки. Мы не будем этого объяснять в сегодняшнем руководстве, так как здесь CSS относится лишь к самой странице, а цель нашего руководства заключается совсем в другом. В самом конце, файл spinner.css будет выглядеть следующим образом:
Этап 3: Разработка функционала javascript В теории, наш анимационный элемент состоит из конкретного количества отделений (в изображении их 8), у которых есть длина (“sectorLength”) и ширина (“sectorWidth”). Конечно же, эти сектора имеют некоторую отдаленность от центра (“centerRadius”). ![]() Статичен ли он? Что же насчет анимации? Что же, анимация – это просто небольшой трюк: так как у нас у всех секторов уровень непрозрачности варьируется от 0.0 до 1.0, мы можем постепенно изменять параметр непрозрачности каждого сектора. Запутались? Другими словами, сектор будет становиться более прозрачным, как только вы увидите работу JS в действии. Чтобы создать библиотеку с возможностью повторного использования, мы используем объектно-ориентированную парадигму, основанную на javascript. Библиотека создана вокруг конструктора (function Spinner(data)) и двух разных функций: * create – при помощи переменных обстоятельств, определенных в конструкторе, она создает SVG-объект анимации и приводит его в движение. * destroy – уничтожает SVG-объект анимации и скрывает полноэкранный просмотр. В недавно созданном файле spinner.js мы сначала создаем контруктор анимационного объекта (нашей вертушки), позволяя пользователю библиотеки выставить какие-нибудь значения вроде числа секторов, дистанцию отдаления секторов от центра, и так далее.
Теперь перейдем к самому большому методу объекта анимации, методу create. Этот метод запускается каждый раз, когда пользователь хочет отобразить вертушку. Обратите внимание на применение jQuery для выделения наших элементов. Именно здесь используются id, о которых мы говорили выше:
Продолжая работу уже с методом create, мы производим некоторые вычисления, вроде общего размера вертушки, подготавливаем объект Raphael к рисованию секций:
Далее производится рисование окружности, и создание массива с учетом текущего значения непрозрачности каждого сектора:
Теперь мы создали и отобразили нашу вертушку, и нам нужно оживить ее. Это и будет последней частью нашего метода create:
Наконец, переходим к методу нашей вертушки destroy:
Этап 4: Раскрытие потенциала! Так как код для вращения уже готов, мы переходим к привязке события к ссылке, чтобы при клике пользователя, с интервалом в 6 секунд отображалась наша вертушка. Лично мы используем асинхронный запрос к серверу, и когда запрос оканчивается, мы просто убираем вертушку. Учтите, что этот код может быть использован только после загрузки всех библиотек, от которых зависит наш анимационный объект. Вы можете добавить этот код в конец файла spinner.js, либо в другой JS-файл, если вы хотите сохранить spinner.js независимым и с возможностью повторно использовать его в других проектах.
Мы можем повторно использовать переменную spinner сколько угодно раз. Подытожим Вертушка, представленная в данном руководстве, может быть использована не только в страницах, предназначенных для мобильных устройств, но также и в обычных веб-страницах. Мы уже испробовали оба подхода, и все работало прекрасно! Чтобы проверить ваши знания, вы можете поработать над модернизацией этого анимационного элемента, а затем рассказать об этом нам и другим читателям в комментариях! Например, вы можете изменить формат/форму секций, поработать над движением анимации по и против часовой стрелки, либо позволить разработчикам использовать любой id для вертушки, чтобы избежать возможных повторений id. На сегодня все! Надеемся, что вам понравилось сегодняшнее руководство! Вернуться назад |