Бесплатные шрифты

 

Статьи и публикации

 

Сервисы

более 200 шрифтованалитикадля веб-кодера

Выпадающее меню

Если на сайте много ссылок в меню, то есть смысл сделать навигацию в виде ниспадающего меню для оптимизации структуры сайта.

Цель  оптимизация структуры сайта
Технология  CSS, JavaScript
Поддержка  Все браузеры с поддержкой JavaScript
Баги  -

Для начала рассмотрим код самого меню. Вёрстка может быть произвольная, я использовал блочную вёрстку.


		<div onmouseover="menushow('1');" onmouseout="menuhide('1');" style="float: left; width: 50%;">
			<div class="navhead">информация</div>
			
			<div id="navbody1">
				<a href="http://wartix.net/info/about/">о проекте</a><br />
				<a href="http://wartix.net/info/contacts/">контакты</a><br />
				<a href="http://wartix.net/info/sitemap/">карта сайта</a>
			</div>
			
		</div>
		
		<div onmouseover="menushow('2');" onmouseout="menuhide('2');">
			<div class="navhead">сервисы</div>
			
			<div id="navbody2">
				<a href="http://wartix.net/text2bin/">text2bin</a><br />
				<a href="http://wartix.net/passgen/">passgen</a><br />
				<a href="http://wartix.net/domaincc/">domaincc</a>
			</div>
			
		</div>

Первому блоку было присвоено имя navbody1, а второму — navbody2. Для каждого раздела при наведении мыши на элемент и при уходе с элемента вызывается функция JS.

Стоит также добавить пару строк на CSS. Для этих блоков указано свойство visibility: hidden. Также я указываю курсор "pointer", чтобы пользователь, у которого отключена поддержка JavaScript, понял, что это — не просто заголовок, а здесь скрывается блок навигации.


		<style type="text/css">		
			.navhead {font-weight: bold; background-color: #f5f7f7; cursor: pointer;}
			#navbody1, #navbody2 {visibility: hidden;}
		</style>

Главная составляющая этого проекта — код на JavaScript:


		<script language="javascript" type="text/javascript">
		//<!--
		//<![CDATA[
			function menuhide(menunum)
			{
				var currentmenu = document.getElementById("navbody" + menunum);
				currentmenu.style.visibility = 'hidden';
			}

			function menushow(menunum)
			{
				var currentmenu = document.getElementById("navbody" + menunum);
				currentmenu.style.visibility = 'visible';
			}
		//]]>
		//-->
		</script>

При наведении курсора на блок активизируется функция menushow(menunum). Menunum — переменная, которая хранит строку с номером меню. Функция выбирает элемент страницы, а имя складывается из navbody и номера. Далее для элемента задаётся свойство visibility: visible. Функция menuhide() (скрывающая меню) срабатывает, когда курсор покидает область меню.

 

Результат


 

Код, 26/07/06Wart!X