My-library.info
Все категории

Александр Чиртик - HTML: Популярный самоучитель

На электронном книжном портале my-library.info можно читать бесплатно книги онлайн без регистрации, в том числе Александр Чиртик - HTML: Популярный самоучитель. Жанр: Программирование издательство -, год 2004. В онлайн доступе вы получите полную версию книги с кратким содержанием для ознакомления, сможете читать аннотацию к книге (предисловие), увидеть рецензии тех, кто произведение уже прочитал и их экспертное мнение о прочитанном.
Кроме того, в библиотеке онлайн my-library.info вы найдете много новинок, которые заслуживают вашего внимания.

Название:
HTML: Популярный самоучитель
Издательство:
-
ISBN:
-
Год:
-
Дата добавления:
17 сентябрь 2019
Количество просмотров:
228
Читать онлайн
Александр Чиртик - HTML: Популярный самоучитель

Александр Чиртик - HTML: Популярный самоучитель краткое содержание

Александр Чиртик - HTML: Популярный самоучитель - описание и краткое содержание, автор Александр Чиртик, читайте бесплатно онлайн на сайте электронной библиотеки My-Library.Info
В книге кратко и просто описывается язык HTML. Прочитав ее, вы научитесь создавать собственные веб-страницы, причем не только простые, но и содержащие таблицы, видео и звук. Более гибко оформить веб-страницы вам поможет рассмотренная в книге технология CSS. А при желании вы сможете сделать веб-страницы динамичными с помощью сценариев JavaScript: описание этого языка вместе с кратким описанием DOM (объектной модели документа) также приведено в этой книге. В последних главах рассматривается пример создания небольшого сайта с использованием всех рассмотренных в книге технологий, а также освещаются основные вопросы публикации сайта в сети Интернет.Приведенные в книге коды можно найти на сайте www.piter.com.

HTML: Популярный самоучитель читать онлайн бесплатно

HTML: Популярный самоучитель - читать книгу онлайн бесплатно, автор Александр Чиртик

Примечание

При использовании описанных в этом разделе свойств объекта style следует учитывать одну неприятную особенность: до того, как сценарий может получить значение свойства, это значение должно быть установлено также с использованием сценария.

Примеры использования объекта style

Теперь рассмотрим три примера, иллюстрирующих возможности элемента style. Первые два из них связаны с анимацией, а в последнем примере приводится реализация усовершенствованного меню на основе таблицы.

В первом примере реализуется перемещение изображений«шариков» внутри рамки (элемент DIV). Шарики имеют случайные первоначальные скорости и направления движения. Кроме того, при достижении стенок (рамки элемента DIV) они упруго он них отталкиваются. Страница примера выглядит так, как показано на рис. 13.4.

Рис. 13.4. Перемещение «шариков» внутри элемента DIV


Ниже приведен текст HTML‑документа, который показан на рис. 13.4 (пример 13.11).

Пример 13.11. Перемещающиеся элементы

<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Frameset//EN»

"http://www.w3.org/TR/html4/frameset.dtd">

<HTML>

<HEAD>

<TITLE>Страница с анимацией</TITLE>

<STYLE type = "text/css">

.ball {position: absolute}

.ballarea {border-style: solid; border-width:1px;

position: absolute; background-color: white}

</STYLE>

</HEAD>

<BODY>

<DIV class = "ballarea" id = "area">

<!–Изображения-шарики–>

<IMG src = "balls/ball1.bmp" class = "ball" id = "ball1">

<IMG src = "balls/ball2.bmp" class = "ball" id = "ball2">

<IMG src = "balls/ball3.bmp" class = "ball" id = "ball3">

<IMG src = "balls/ball4.bmp" class = "ball" id = "ball4">

<IMG src = "balls/ball5.bmp" class = "ball" id = "ball5">

<SCRIPT type = "text/javascript">

//Позиционируем элемент DIV

area.style.left = area.style.top = "10mm";

area.style.width = area.style.height = 200;

//Установим размер изображений-шариков ball1.style.pixelWidth = ball1.style.pixelHeight = 16;

ball2.style.pixelWidth = ball2.style.pixelHeight = 16;

ball3.style.pixelWidth = ball3.style.pixelHeight = 16;

ball4.style.pixelWidth = ball4.style.pixelHeight = 16;

ball5.style.pixelWidth = ball5.style.pixelHeight = 16;

</SCRIPT>

</DIV>

<SCRIPT type = "text/javascript" src = "balls.js"></SCRIPT>

</BODY>

</HTML>

Здесь предполагается использование пяти изображений из папки balls. Как видно из примера, чтобы сценарий нормально работал с координатами и размером изображений, соответствующие свойства пришлось установить не в CSS, а опять же с помощью сценария.

Во внешний файл вынесен сценарий, отвечающий за перемещение изображений (файл balls.js). Cодержимое файла balls.js выглядит следующим образом (пример 13.12).

Пример 13.12. Содержимое файла balls.js

//Массив со ссылками на объекты-изображения шариков var balls = [ball1, ball2, ball3, ball4, ball5];

//Массивы скоростей по горизонтали и вертикали (от –10 до 10)

var xSpeed = [rand(–10,10), rand(–10,10), rand(–10,10),

rand(–10,10), rand(–10,10)];

var ySpeed = [rand(–10,10), rand(–10,10), rand(–10,10),

rand(–10,10), rand(–10,10)];

//Минимальные значения координат изображений var minX = ball1.style.pixelLeft;

var minY = ball1.style.pixelTop;

//Максимальные значения координат изображений var maxX = area.style.pixelWidth + minX – balls[0].style.pixelWidth;

var maxY = area.style.pixelHeight + minY – balls[0].style.pixelHeight;

//Назначаем функцию обновления изображения, вызываемую по таймеру window.setInterval(redraw, 100);

//Функция генерации случайных значений function rand(min, max){

return Math.random()*(max–min)+min;

}

//Функция обновления координат и перерисовки изображений function redraw(){

var i, newX, newY;

for (i=0; i<balls.length; i++){

//Вычисляем новое положение шарика newX = balls[i].style.pixelLeft + xSpeed[i];

newY = balls[i].style.pixelTop + ySpeed[i];

//Проверка столкновения с границами if (newX > maxX){

newX = maxX;

xSpeed[i] = –xSpeed[i];

}

else if (newX < minX){

newX = minX;

xSpeed[i] = –xSpeed[i];

}

if (newY > maxY){

newY = maxY;

ySpeed[i] = –ySpeed[i];

}

else if (newY < minY){

newY = minY;

ySpeed[i] = –ySpeed[i];

}

//Наконец, перемещаем изображение balls[i].style.pixelLeft = newX;

balls[i].style.pixelTop = newY;

}

}

В следующем примере рассматривается сценарий, позволяющий случайным образом изменять цвет текста, для которого задан определенный стилевой класс. Стилевой класс в примере имеет название colored. Пример разбит на две части: собственно сценарий (файл coloredtext.js) и HTML‑документ, использующий возможности этого сценария.

Для начала рассмотрим сам сценарий, код которого приведен ниже (пример 13.13).

Пример 13.13. Содержимое файла coloredtext.js

//Поиск всех элементов, имеющих класс «colored»

var i, j = 0;

var elements = [];

for (i=0; i<document.all.length; i++){

if (document.all(i).className == "colored"){

elements[j] = document.all(i);

j++;

}

}

//RGB-составляющие цвета текста var R = 0, G = 0, B = 0; //По умолчанию цвет черный

//Назначаем функцию перерисовки window.setInterval(redraw, 50);

//Функция генерации случайных значений function rand(min, max){

return Math.random()*(max–min)+min;

}

function redraw(){

//Вычисляем новые значения составляющих цвета

R += rand(–8, 8);

R = (R>=0) ? R : 0;

R = (R<=255) ? R : 255;

G += rand(–8, 8);

G = (G>=0) ? G : 0;

G = (G<=255) ? G : 255;

B += rand(–8, 8);

B = (B>=0) ? B : 0;

B = (B<=255) ? B : 255;

//Установка нового цвета для всех элементов for (i=0; i<elements.length; i++){

elements[i].style.color =

"rgb(" + R + "," + G + "," + B + ")";

}

}

Этот сценарий работает следующим образом. После загрузки содержимого документа (для этого файл должен подключаться к документу перед закрывающим тегом </BODY>) производится просмотр всей коллекции all документа, и в массив elements помещаются ссылки на все элементы, имеющие стилевой класс colored. Кроме обозначения элементов, цвет которых нужно изменять, этот стилевой класс больше ни для чего не используется.

Изменение цвета в примере осуществляется по таймеру. Значения RGB‑составляющих цвета случайным образом изменяются на небольшие значения, что обеспечивает эффект этакого плавного перехода цвета. Еще следует отметить, что цвет всех отобранных элементов всегда одинаков. Это сделано для упрощения программы.

В примере 13.14 показано, как используется рассматриваемый сценарий.

Пример 13.14. Страница с разноцветным текстом

<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Frameset//EN»

"http://www.w3.org/TR/html4/frameset.dtd">

<HTML>

<HEAD>

<TITLE>Разноцветный текст</TITLE>

<STYLE type = "text/css">

.colored {}

</STYLE>

</HEAD>

<BODY>

<H1>Обычный заголовок</H1>

<H1 class = "colored">Разноцветный заголовок</H1>

<P class>Обычный текст

<P class = "colored">Разноцветный текст

<SCRIPT type = "text/javascript" src = "coloredtext.js"></SCRIPT>

</BODY>

</HTML>

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

Пример реализован следующим образом: вверху окна организуется строка меню, в которой присутствуют два пункта, открывающих два различных меню. Первое меню выглядит так, как показано на рис. 13.5.

Рис. 13.5. Открыто первое меню


Второе меню, вызываемое при выборе второго пункта в строке меню, показано на рис. 13.6.

Рис. 13.6. Открыто второе меню


Как видно, оба меню появляются под соответствующими пунктами строки меню. Теперь рассмотрим, как реализован этот пример, а также какие существуют направления усовершенствования этого примера. Пример разбит на две части: HTML‑документ и сценарий (файл popup_menu.js). Сначала разберем текст HTML‑документа (пример 13.15).

Пример 13.15. Документ со строкой меню

<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Frameset//EN»>

<HTML>

<HEAD>

<TITLE>Страница с меню</TITLE>

<STYLE type = "text/css">

.item {background-color: rgb(170, 170, 170)}

.selected {background-color: magenta}

.menu {border-style: ridge; visibility: visible; position: absolute}

.hidden {display: none}

.menu_line {border-style: solid; border-width: 1px;

background-color: rgb(170,170,170); width:100%}

</STYLE>

<SCRIPT src = "popup_menu.js" type = "text/javascript"></SCRIPT>

</HEAD>

<BODY>

<!–Создаем первое меню (изначально оно скрывается)–>

<TABLE id = "menu1" class = "hidden">

<!–Первый пункт меню–>

<TR id = "menu1_item1" class = "item" onClick = "menu1_item1_click()"

onMouseOver = "menu1_item1.className = 'selected'"

onMouseOut = "menu1_item1.className = 'item'">

<TD><IMG src = "icons/1.jpg"><TD>Первый пункт меню

<!–Второй пункт меню–>

<TR id = "menu1_item2" class = "item" onClick = "menu1_item2_click()"

onMouseOver = "menu1_item2.className = 'selected'"

onMouseOut = "menu1_item2.className = 'item'">

<TD><IMG src = "icons/2.jpg"><TD>Второй пункт меню

<!–Третий пункт меню–>

<TR id = "menu1_item3" class = "item" onClick = "menu1_item3_click()"

onMouseOver = "menu1_item3.className = 'selected'"

onMouseOut = "menu1_item3.className = 'item'">

<TD><IMG src = "icons/3.jpg"><TD>Третий пункт меню

<!–Четвертый пункт меню–>

<TR id = "menu1_item4" class = "item" onClick = "menu1_item4_click()"

onMouseOver = "menu1_item4.className = 'selected'"

onMouseOut = "menu1_item4.className = 'item'">

<TD><IMG src = "icons/4.jpg"><TD>Четвертый пункт меню

<!–Пятый пункт меню–>

<TR id = "menu1_item5" class = "item" onClick = "menu1_item5_click()"

onMouseOver = "menu1_item5.className = 'selected'"

onMouseOut = "menu1_item5.className = 'item'">

<TD><IMG src = "icons/5.jpg"><TD>Пятый пункт меню

</TABLE>

<!–Создаем второе меню (изначально оно также скрывается)–>

<TABLE id = "menu2" class = "hidden">

<!–Первый пункт меню–>

<TR id = "menu2_item1" class = "item" onClick = "menu2_item1_click()"

onMouseOver = "menu2_item1.className = 'selected'"

onMouseOut = "menu2_item1.className = 'item'">

<TD><IMG src = "balls/ball1.bmp"><TD>Первый пункт меню

<!–Второй пункт меню–>

<TR id = "menu2_item2" class = "item" onClick = "menu2_item2_click()"


Александр Чиртик читать все книги автора по порядку

Александр Чиртик - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки My-Library.Info.


HTML: Популярный самоучитель отзывы

Отзывы читателей о книге HTML: Популярный самоучитель, автор: Александр Чиртик. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.