- Главная»
- Уроки»
- HTML и DHTML»
- 3D текст, расположенный по кругу с помощью HTML5
- Метки урока:
- кодинг
- web дизайн
- разное
- анимация
3D текст, расположенный по кругу с помощью HTML5
Используем HTML5 для создания текста с эффектами 3D (с помощью теней) и расположения его по кругу. Также будет выполняться анимация движения букв.
Разметка HTML
Для демонстрации создаем простую страницу с элементом canvas
<!DOCTYPE html> <html lang="ru" > <head> <meta charset="utf-8" /> <title>Текст по кругу с эффектом 3D на HTML5 | Материалы сайта RUSELLER.COM</title> <link href="css/main.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="js/script.js"></script> </head> <body> <header> <h2>Текст по кругу с эффектом 3D на HTML5</h2> <a href="http://www.ruseller.com" class="stuts" target="_blank">Материалы сайта <span>RUSELLER.COM</span></a> </header> <div class="container"> <div class="contr"> <input type="radio" name="mode" onchange="bPlay = false" checked /><label>Стоп</label> <input type="radio" name="mode" onchange="bPlay = true" /><label>Пуск</label> </div> <canvas id="panel" width="600" height="600"></canvas> </div> </body> </html>
JavaScript
Весь функционал нашего примера реализован в коде JavaScript. Основная функция разделяет строку текста на отдельные символы и выводит их с необходимыми трансформациями:
// Переменные var canvas, ctx; var bPlay = false; var iAngle = 0; var sText = 'Привет! 3D текст по кругу. '; // Функции рисования function clear() { // Очистка элемента canvas ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); } function drawScene() { // Основная функция вывода сцены if (bPlay == 1) { clear(); // Очистка элемента canvas // Заполняем фон ctx.fillStyle = '#d7e8f1'; ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height); // Меняем угол iAngle+=0.005; // и выводим текст по кругу с радиусом 200 в центре элемента canvas draw3DTextCircle(sText, canvas.width / 2, canvas.height / 2, 200, Math.PI / 2 - iAngle); } } function draw3DTextCircle(s, x, y, radius, iSAngle){ // Радиан на символ var fRadPerLetter = 2*Math.PI / s.length; // Сохраняем контекст, переводим и вращаем его ctx.save(); ctx.translate(x,y); ctx.rotate(iSAngle); // Количество дополнительных нижних слоев var iDepth = 4; // Устанавливаем темно-зеленый цвет для дополнительных слоев ctx.fillStyle = '#168d1e'; // Обрабоатываем каждый символ строки for (var i=0; i<s.length; i++) { ctx.save(); ctx.rotate(i*fRadPerLetter); // Выводим дополнительные слои for (var n = 0; n < iDepth; n++) { ctx.fillText(s[i], n, n - radius); } // Параметры тени ctx.fillStyle = '#00d50f'; ctx.shadowColor = 'black'; ctx.shadowBlur = 10; ctx.shadowOffsetX = iDepth + 2; ctx.shadowOffsetY = iDepth + 2; // выводим символы ctx.fillText(s[i], 0, -radius); ctx.restore(); } ctx.restore(); } // Привязываем событие onload if (window.attachEvent) { window.attachEvent('onload', main_init); } else { if(window.onload) { var curronload = window.onload; var newonload = function() { curronload(); main_init(); }; window.onload = newonload; } else { window.onload = main_init; } } function main_init() { // Создаем элемент canvas и объект context canvas = document.getElementById('panel'); ctx = canvas.getContext('2d'); // Инициализуем строку текста ctx.font = '64px Verdana'; ctx.textAlign = 'center'; ctx.textBaseline = 'middle'; // Заполняем фон ctx.fillStyle = '#d7e8f1'; ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height); // Выводим текст по кругу с радуисом 200 по центру элемента canvas draw3DTextCircle(sText, canvas.width / 2, canvas.height / 2, 200, Math.PI / 2 - iAngle); setInterval(drawScene, 40); // Выводим сцену }
Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.script-tutorials.com/html5-3d-circle-text-with-shadows/
Перевел: Сергей Фастунов
Урок создан: 16 Июня 2012
Просмотров: 34049
Правила перепечатки
5 последних уроков рубрики "HTML и DHTML"
-
Лайфхак: наиполезнейшая функция var_export()
При написании или отладки PHP скриптов мы частенько пользуемся функциями var_dump() и print_r() для вывода предварительных данных массив и объектов. В этом посте я бы хотел рассказать вам о функции var_export(), которая может преобразовать массив в формат, пригодный для PHP кода.
-
17 бесплатных шаблонов админок
Парочка бесплатных шаблонов панелей администрирования.
-
30 сайтов для скачки бесплатных шаблонов почтовых писем
Создание шаблона для письма не такое уж простое дело. Предлагаем вам подборку из 30 сайтов, где можно бесплатно скачать подобные шаблоны на любой вкус.
-
Как осуществить задержку при нажатии клавиши с помощью jQuery?
К примеру у вас есть поле поиска, которое обрабатывается при каждом нажатии клавиши клавиатуры. Если кто-то захочет написать слово Windows, AJAX запрос будет отправлен по следующим фрагментам: W, Wi, Win, Wind, Windo, Window, Windows. Проблема?.
-
15 новых сайтов для скачивания бесплатных фото
Подборка из 15 новых сайтов, где можно скачать бесплатные фотографии для заполнения своих сайтов.