Скрытый блок
Иногда на веб-странице нужно сделать скрытые элементы с дополнительной информацией, которые должны появляется только после щелчка мышью на какой-нибудь ссылке. На рисунке 4.26 показана такая страница до и после щелчка.
Рис. 4.26
Данные, которые должны быть скрыты, поместим в отдельный блок (кроме текста он может содержать рисунки, таблицы и другие элементы):
<div id="details" class="hidden"> Детали это гайка, шайба, болт, винт, шуруп, гвоздь и др. </div>
Это блок имеет идентификатор details, по которому мы будем к нему обращаться из программного кода. Кроме того, он относится к классу hidden (англ. hidden — скрытый). Заметим, что на странице можно сделать несколько скрытых блоков — для них нужно указать класс hidden, однако все они должны иметь разные идентификаторы.
Теперь нужно сообщить браузеру, что элементы класса hidden должны быть скрытыми. Для этого в стилевом файле (назовем его test.ess) установим значение попе (англ. попе — никакой) свойству display (англ. display — показывать):
.hidden { display:none; }
Мы будем с помощью JavaScript менять это свойство после щелчка на ссылке, устанавливая его значение block (блок начинается с новой строки) или inline (в той же строке, без перехода на новую строку).
Как правило, веб-мастера выносят весь код на JavaScript в отдельные файлы, которые обычно имеют расширение js и подключаются на всех страницах сайта с помощь тэга <script> в заголовке страницы. Например, для использования JavaScript-файла test.js нужно записать:
<head> <script type="text/javascript" src="test.js"</script> ... </head>
Атрибут sre задает имя файла, а атрибут type — его тип. Многоточие обозначает другие тэги, помещённые внутрь контейнера <head>.
Файл test.js можно создать в любом текстовом редакторе:
function show (name) { var elem = document.getElementByld(name); if (elem) elem.style.display = "block"; }
Этот файл содержит одну функцию с именем show, которая принимает один параметр name — идентификатор (имя) скрытого элемента. Тело функции ограничено фигурными скобками, синтаксис языка очень похож на язык Си. В первой строчке создаётся переменная elem, в которую записывается ссылка на нужный элемент (для её получения используется метод getElementByld).
Далее с помощью условного оператора проверяем, в самом ли деле такой элемент найден. Если значение elem не равно пустому значению (null), условный оператор срабатывает и меняется стиль элемента (style) — свойству display присваивается значение block.
Осталось оформить гиперссылку так, чтобы при щелчке мышью не происходил переход на другую страницу, а выполнялся код функции show, который показывает блок с идентификатором details. Для этого используем такой код:
<а href="#" onClick="show('details');return false;"> Показать детали </a>
Атрибут onClick подключает обработчик события «щелчок мышью» (англ. click). В данном случае это код
show('details');return false;
Сначала вызывается функция show (из файла test.js), которая «открывает» блок с идентификатором details. Оператор return false («вернуть результат — ложное значение») говорит о том, что больше никаких действий выполнять не нужно. Если пользователь отключил выполнение JavaScript в браузере, сработает гиперссылка (href="#") и загрузится та же самая страница (блок, естественно, не появится).
Итак, для работы этого примера нужны три файла: test.ess, test.js и основной файл с HTML-кодом, который мы приведём полностью:
<html> <head> <title>Скрытый блок</title> <script type="text/javascript" src="test. js"x/script> <link rel="stylesheet" type="text/css" href="test.css"> </head> <body> <a href=# onClick="show('details'); return false;"> Показать детали</а> <div id="details" class="hidden"> Детали это гайка, шайба, болт, винт, шуруп, гвоздь и др. </div> </body> </html>
Следующая страница Формы