- •Web программирование
- •231000.62 – “Программная инженерия”
- •Содержание
- •Введение
- •Дисциплина web программирование имеет целью обучить студентов разработке web - приложений, дать студентам теоретические знания и практические навыки в проектировании и реализации web-сайтов.
- •1. Протоколы и модели Internet-взаимодействия
- •1.1. Протоколы
- •1.2. Модель клиент-сервер
- •1.3. Формат описания адреса
- •2. Статическое web – программирование
- •2.1. Структура html-документа
- •2.2. Работа с текстом
- •2.3. Работа с таблицами
- •2.4. Работа с формами
- •2.5. Работа с фреймами
- •3. Каскадные таблицы стилей (css)
- •3.1. Синтаксис css
- •3.2. Использование css
- •3.3. Свойства css
- •4. Язык xml
- •4.1. Структура xml-документа
- •4.2. Правила создания xml-документа
- •4.3. Конструкции языка xml
- •4.3.1. Элементы данных
- •4.3.2. Комментарии
- •4.3.3. Атрибуты
- •4.3.4. Cпециальные символы
- •4.3.5. Директивы анализатора
- •4.3.6. Cdata
- •5. JavaScript сценарии
- •5.1. Клиентские и серверные сценарии
- •5.2. Операторы и функции JavaScript
- •5.3. Встроенные объекты JavaScript
- •5.4. Динамический html
- •5.5. Ajax технология
- •6. Работа с субд MySql
- •6.1. Особенности
- •6.2. Основные команды
- •7. Php. Динамическое web-программирование
- •7.1. Особенности
- •7.2. Php и объектно-ориентированное программирование
- •8. Проектирование полнофункциональных web-сайтов
- •8.1. Виды сайтов
- •8.2. Этапы проектирования web-сайтов
- •9. Задания для выполнения лабораторных работ
- •Последовательность выполнения задания
- •9.2. Задания для выполнения лабораторной работы №2 «Разработка сайта, содержащего карту-изображение с заданными активными зонами»
- •Варианты
- •Последовательность выполнения задания
- •9.3. Задания для выполнения лабораторной работы №3 «Разработка сайта, содержащего таблицы»
- •Варианты
- •9.4. Задания для выполнения лабораторной работы №4 «Разработка сайта “Электронный тест проверки знаний студентов изучаемых дисциплин”»
- •Варианты
- •Последовательность выполнения задания
- •9.5. Задания для выполнения лабораторной работы №5 «Разработка сайта с динамическими эффектами»
- •Варианты
- •Последовательность выполнения задания
- •9.6. Задания для выполнения лабораторной работы №6 «JavaScript. Горизонтальное и вертикальное меню»
- •Варианты
- •Последовательность выполнения задания
- •2.1 Горизонтальное меню
- •2.2 Вертикальное выпадающее меню
- •2.3 Вертикальное раскрывающееся меню
- •9.7. Задания для выполнения лабораторной работы №7
- •2. Ход работы
- •9.8. Задания для выполнения лабораторной работы №8 «Динамическая поддержка выбора значений из предлагаемого списка»
- •Варианты
- •Последовательность выполнения задания
- •9.9. Задания для выполнения лабораторной работы№9 «MySql. Проектирование базы данных и обеспечение прав доступа»
- •Варианты
- •Последовательность выполнения задания
- •9.10. Задания для выполнения лабораторной работы№10 «Разработка интернет-магазина»
- •Варианты
- •Последовательность выполнения задания
- •10. Контрольная работа
- •10.1. Назначение, цели и задачи контрольной работы
- •10.2. Требования к контрольной работе
- •10.3. Варианты заданий курсовой работы
- •11. Пример программы «Создание динамического эффекта» к выполнению лабораторной работы №5 «Разработка сайта с динамическими эффектами»
- •11.1. Плавное появление и исчезновение текста
- •11.2. Текст, движущийся на наблюдателя
- •11.3. Создание бегущих строк
- •11.4. Волнообразнодвижущийся текст
- •10.5. Текст, прилетающий по частям
- •10.6. Имитация движения текста по кругу в 3 d пространстве
- •10.7. Движение фонового рисунка страницы («летящие звезды», «эффект фейерверка», «падающий снег», «часы со стрелками»)
- •Заключение
- •Список литературных первоисточников
- •231000.62 – «Программная инженерия»
11.4. Волнообразнодвижущийся текст
Эффект 1
Анимация текстовой надписи, выглядящей как волнообразное движение
<html lang="ru">
<head>
<title>Анимационные эффекты | Волнообразно движущийся текст, эффект 1</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="ru">
<style type="text/css">
<!--
BODY
{
background : white;
}
TABLE
{
width : 100%;
height : 100%;
}
#ID_ANIMATE
{
color : black;
white-space : nowrap;
font : normal 0px "Times New Roman", serif;
}
-->
</style>
</head>
<body>
<TABLE>
<TR>
<TD align="center" valign="middle"><span ID="ID_ANIMATE"></span></TD>
</TR>
</TABLE>
<script type="text/javascript">
<!--
var nPeriod = 2; // количество периодов синусоиды
var nMaxSize = 64; // максимальный размер шрифта
var nMinSize = 12; // минимальный размер шрифта
var strText = "Волнообразно движущийся текст"; // текст надписи
// --
var fPhase = 0.0;
var aoChars = new Array();
var nSteps = strText.length;
var fStep = 2 * Math.PI * nPeriod / nSteps;
var nDy = (nMaxSize + nMinSize) / 2;
var nAmp = (nMaxSize - nMinSize) / 2;
// --
function OnTimer()
{
for(var i = 0; i < nSteps; i++)
{
var nSize = Math.ceil(Math.sin(fStep * i + fPhase) * nAmp + nDy);
aoChars[i].style.fontSize = nSize.toString(10) + "px";
}
fPhase += fStep;
}
// --
for(var i = 0; i < nSteps; i++)
{
var oSpan = document.createElement("SPAN");
oSpan.appendChild(document.createTextNode(strText.substring(i, i + 1)));
document.getElementById("ID_ANIMATE").appendChild(oSpan);
aoChars[i] = oSpan;
}
// --
OnTimer();
window.setInterval(OnTimer, 100);
// -->
</script>
<noscript>
Внимание ! Ваш браузер не поддерживает выполнение скриптов, либо скрипты отключены.
</noscript>
</body>
</html>
Эффект 2
<html lang="ru">
<head>
<title>Анимационные эффекты | Волнообразно движущийся текст, эффект 2</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="ru">
<style type="text/css">
<!--
BODY
{
background : white;
}
TABLE
{
width : 100%;
height : 100%;
}
#ID_ANIMATE
{
height : 1px;
color : black;
white-space : nowrap;
font : normal 16px "Courier New", monotype;
}
#ID_ANIMATE SPAN
{
position : relative;
}
-->
</style>
</head>
<body>
<TABLE>
<TR>
<TD align="center" valign="middle"><DIV ID="ID_ANIMATE"></DIV></TD>
</TR>
</TABLE>
<script type="text/javascript">
<!--
var nPeriod = 2; // количество периодов синусоиды
var nAmplitude2 = 32; // половина амплитуды синусоиды
var nKPhase = 16; // коэффициэнт фазового сдвига на каждой итерации
var strText = "Волнообразно движущийся текст"; // текст надписи
// --
var fPhase = 0.0;
var aoChars = new Array();
var nSteps = strText.length;
var fStep = (2 * Math.PI * nPeriod / nSteps);
var oAnimate = document.getElementById("ID_ANIMATE");
// --
function OnTimer()
{
for(var i = 0; i < nSteps; i++)
{
var nPos = Math.ceil(Math.sin(fStep * i + fPhase) * nAmplitude2);
aoChars[i].style.top = nPos.toString(10) + "px";
}
fPhase -= fStep / nKPhase;
}
// --
for(var i = 0; i < nSteps; i++)
{
var oSpan = document.createElement("SPAN");
oSpan.appendChild(document.createTextNode(strText.substring(i, i + 1)));
oSpan.style.zIndex = 1;
oAnimate.appendChild(oSpan);
aoChars[i] = oSpan;
}
// --
OnTimer();
window.setInterval(OnTimer, 20);
// -->
</script>
<noscript>
Внимание ! Ваш браузер не поддерживает выполнение скриптов, либо скрипты отключены.
</noscript>
</body>
</html>
Эффект 3
<html lang="ru">
<head>
<title>Анимационные эффекты | Волнообразно движущийся текст, эффект 3</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="ru">
<style type="text/css">
<!--
BODY
{
background : white;
}
TABLE
{
width : 100%;
height : 100%;
}
#ID_ANIMATE
{
color : black;
white-space : nowrap;
font : normal 16px "Courier New", monotype;
}
#ID_ANIMATE SPAN
{
position : relative;
}
-->
</style>
</head>
<body>
<TABLE>
<TR>
<TD align="center" valign="middle"><span ID="ID_ANIMATE"></span></TD>
</TR>
</TABLE>
<script type="text/javascript">
<!--
var nAmp = 20; // амплитуда синусоиды
var nPeriod = 2; // количество периодов синусоиды
var nKPhase = 3; // коэффициэнт фазового сдвига на каждой итерации
var strText = "Волнообразно движущийся текст"; // текст надписи
// --
var pi = Math.PI;
var nSteps = strText.length;
var fStep = 2 * pi * nPeriod / (nSteps * nKPhase); // фазовый сдвиг на каждой итерации
var aoChars = new Array();
// --
var fX;
var fdX;
var fPhase;
var nTimerID;
function InitPhase_1()
{
fX = 0.1;
fdX = -9;
nTimerID = setInterval(OnTimer_1, 20);
}
function InitPhase_2()
{
fPhase = 0;
nTimerID = setInterval(OnTimer_2, 20);
}
function OnTimer_1()
{
fX += fdX;
if(fX > 0)
{
fX = 0;
clearInterval(nTimerID);
InitPhase_2();
}
else
fdX += 0.75;
aoChars[0].style.left = Math.ceil(fX).toString() + "px";
}
function OnTimer_2()
{
for(var i = 0; i < nSteps; i++)
{
var nPos;
var fAngle = (2 * pi * nPeriod / nSteps) * i;
if((fAngle >= fPhase) && (fAngle <= fPhase + pi))
nPos = -Math.ceil(Math.sin(fAngle - fPhase) * nAmp);
else
nPos = 0;
aoChars[i].style.top = nPos.toString(10) + "px";
}
fPhase += fStep;
if(fPhase > 2 * pi * nPeriod)
{
clearInterval(nTimerID);
setTimeout(InitPhase_1, 2000);
}
}
// --
for(var i = 0; i < nSteps; i++)
{
var oSpan = document.createElement("SPAN");
oSpan.appendChild(document.createTextNode(strText.substring(i, i + 1)));
oSpan.style.zIndex = 1;
document.getElementById("ID_ANIMATE").appendChild(oSpan);
aoChars[i] = oSpan;
}
// --
InitPhase_1();
// -->
</script>
<noscript>
Внимание ! Ваш браузер не поддерживает выполнение скриптов, либо скрипты отключены.
</noscript>
</body>
</html> /17/.