Назад
Создание прибыльного бизнеспроекта на базе сайта

SEO + ASP.NET 4.0 + БИЗНЕСМОДЕЛЬ = ПРИБЫЛЬНЫЙ САЙТ

Инструмент быстрого построения прибыльного онлайн бизнеса своими силами без капиталовложений за 4 месяца все подробности на SEO + ASP.NET 4.0.

Подписка на рассылку

МАГИЯ C#!

Создание вебсайта с формой автоматического приема онлайн платежей по WebMoney!
Ваше имя
Ваш e-mail
Уроки по ASP.NET c# ADO.NET
     

18 видеоуроков
более 5 часов
по созданию сайта,
выполняющего
продажи ваших продуктов (физических/электронных) на полном автомате с личным оповещением на e-mail, а также ...
DVD-курс по C#, .NET

3 часть. Введение в ASP.NET. WebServices Профессиональная подготовка разработчика по языку C# на платформе .NET

asp.net webservices dvd c# gridview Гудок курс Более 65 подробных видео уроков по теоретическим основам технологии сайтостроения ASP.NET и процессу создания и использованию вебсервисов.

DVD-курс по C#, .NET

2А часть. XML/TXT в аспекте ADO.NET Профессиональная подготовка разработчика по языку C# на платформе .NET

xml txt dvd c# ADO ADO.NET Гудок курс 70 подробных видео уроков по работе с форматами xml, txt, по работе с файлами и директориями. Разработка высокоорганизованных свойств для значительного сокращения объема исходного кода и облегчения дальнейшей модификации и многое-многое другое...

DVD-курс по C#, .NET

1 часть. Windows Forms Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок

185 подробнейших уроков (70 часов) лекций в формате видеоуроков по теории языка c# и платформы .NET. Практическое закрепление теоретического материала на примере создания Windows Forms - приложения видеоигры "Tanks"

DVD-курс по C#, .NET

2 часть. ADO.NET/SQL Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок ADO.NET sql

165 подробных видео уроков по созданию приложений распределенных баз данных на примере разработки проектов с использований технологий ADO.NET (Connected model, Disconnected model, Typed DataSet, ...)

Бодибилдинг
Программы тренировок для занятий штангой, гантелями; описание тренажеров

Я записываю курсы!
  Курс валют

НБУ курс евро






Перекрестное выпадающее вертикально-горизонтальное универсальное анимированное меню на CSS3 и Jquery



В сегодняшнем уроке мы создадим целую страницу меню =), которое имеет две интересные особенности: при наведении на пункты меню мы будем излагать пункты меню, который адаптируется к ширине текущего монитора, и мы будет делать описание с в левой части страницы, идущие к данному пункту меню.

Мы будем использовать JQuery для эффекта, а некоторые CSS3 свойства стиля нам помогут. Мы не собираемся использовать какие-либо изображения.

Пример работы вы можете посмотреть здесь, а исходники скачать здесь.

HTML структура будет состоять из неупорядоченных списков, что отражает наше меню и Div для описания элементов:

<div id="slidingMenuDesc" class="slidingMenuDesc">
	<div><span>Description for "About"</span></div>
	...
</div>

<ul id="slidingMenu" class="slidingMenu">
	<li><a href="#">Home</a></li>
	<li><a href="#">About</a></li>
	<li><a href="#">Portfolio</a></li>
	<li><a href="#">Work</a></li>
	<li><a href="#">Contact</a></li>
	<li><a href="#">Get a quote</a></li>
</ul>

Во-первых, мы будем писать стили меню и его элементов навигации и тогда мы будем писать стили элементов описания. Давайте сбросим несколько стилей:

body, ul, li, h1, h2, span
{
	margin:0;
	padding:0;
}

ul
{
	list-style:none;
}

Фон будет темно-серый:

body
{
	background:#292929;
}

Список пунктов меню будет абсолютно позиционироваться в правой части экрана:

.slidingMenu 
{
	position: absolute;
	height:410px;
	width: 410px;
	top:40px;
	overflow:hidden;
	right:1px;
	font-family: Arial, Helvetica, sans-serif;
}

Пункты меню float right то есть обтекать в право:

.slidingMenu li 
{
	display:block;
	float:right;
	clear:both;
	position:relative;
	overflow:hidden;
}

Элементы описания будут позиционироваться абсолютно, и мы зададим его динамически:

.slidingMenu li.move {
	width: 9px;
	height: 68px;
	right:0px;
	padding-right:10px;
	margin-top:2px;
	z-index: 8;
	position: absolute;
	background: #2183c4;
	background:
		-webkit-gradient(
			linear,
			left top,
			left bottom,
			from(#0771b8),
			to(#2183c4)
		);
	background:
		-moz-linear-gradient(
			top,
			#0771b8,
			#2183c4
		);
	-moz-border-radius: 8px 0px 0px 8px;
	-webkit-border-top-left-radius: 8px;
	-webkit-border-bottom-left-radius: 8px;
	border-top-left-radius: 8px;
	border-bottom-left-radius: 8px;
	-moz-box-shadow:1px 1px 5px #000;
	-webkit-box-shadow:1px 1px 5px #000;
	box-shadow:1px 1px 5px #000;
	}

Мы будем делять этот движущийся элемент при наведении очень легко градиент фона и некоторые тени решат проблему. Стиль для ссылки элемент будет выглядить следующим образом:

.slidingMenu li a 
{
	font-size:66px;
	text-transform:uppercase;
	text-decoration: none;
	color: #ddd;
	outline: none;
	text-indent:5px;
	z-index: 10;
	display: block;
	float: right;
	height: 66px;
	line-height: 66px;
	position: relative;
	overflow: hidden;
	padding-right:10px;
}

Описания будет относительно расположению контейнера.

/* Описания */
.slidingMenuDesc
{
	margin-top:40px;
	position:relative;
}

Div с описанием внутри будет иметь тот же фон градиентом. Округлые границы будут на противоположных углах:

.slidingMenuDesc div
{
	background: #2183c4;
	background:
		-webkit-gradient(
			linear,
			left top,
			left bottom,
			from(#0771b8),
			to(#2183c4)
		);
	background:
		-moz-linear-gradient(
			top,
			#0771b8,
			#2183c4
		);
	height: 68px;
	padding-right:5px;
	left:-5px;
	width:0px;
	margin-top:2px;
	overflow:hidden;
	position:absolute;
	-moz-box-shadow:1px 1px 5px #000;
	-webkit-box-shadow:1px 1px 5px #000;
	box-shadow:1px 1px 5px #000;
	-moz-border-radius: 0px 8px 8px 0px;
	-webkit-border-top-right-radius: 8px;
	-webkit-border-bottom-right-radius: 8px;
	border-top-right-radius: 8px;
	border-bottom-right-radius: 8px;
}

Мы должны установить эти элементы абсолютными, поскольку мы будем регулировать сверху по текущему элементу списка. Описание службы будет абсолютно позиционированым, а также. Это не обязательно, но это дает больше вариантов, если вы хотели бы применить другие эффекты анимации:

.slidingMenuDesc div span 
{
	font-size:36px;
	color: #f0f0f0;
	text-indent:5px;
	z-index: 10;
	display: block;
	height: 66px;
	line-height: 66px;
	position:absolute;
	right:10px;
	margin-left:5px;
	top:-3px;
}

А теперь, давайте взглянем на JavaScript!

Во-первых, мы добавим следующие сценарии в наш головной HTML:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">
</script>

<script src="cufon-yui.js" type="text/javascript"></script>

<script src="BabelSans_500.font.js" type="text/javascript"></script>

<script src="jquery.easing.1.3.js" type="text/javascript"></script>

И мы будем реализовывать следующий сценарий:

$(function() {
Cufon.replace('a, span').CSS.ready(function() {
var $menu = $("#slidingMenu");

/ **
* Первый пункт в меню,
*, Который установлен по умолчанию
* /
var $selected	= $menu.find('li:first');

/ **
* Это абсолютный элемент,
*, Которая будет перемещаться по пунктам меню
* Это ширина выбранного элемента
* И верхней расстояние от пункта к началу страницы
* /
var $moving = $('<li />',{
className: 'move',
top: $selected[0].offsetTop + 'px',
width: $selected[0].offsetWidth + 'px'
});

/ **
* Каждой раздвижной div (описания) будет иметь туже высоту
* На соответствующий пункт в меню
* /
$('#slidingMenuDesc > div').each(function(i){
var $this = $(this);
$this.css('top',$menu.find('li:nth-child('+
parseInt(i+2)+')')[0].offsetTop + 'px');
});

/ **
* Добавить абсолютную div до меню;
* Когда мы убираем мыш от меню
* Абсолютное движения div-ов до верхней части 
* (например, как на начальном этапе);
* При наведении на пункт меню, мы переместим 
* его в своей позиции
* /
$menu.bind('mouseleave',function(){
moveTo($selected,400);
})
.append($moving)
.find('li')
.not('.move')
.bind('mouseenter',function(){
var $this = $(this);
var offsetLeft = $this.offset().left - 20;
//слайд в описании
$('#slidingMenuDesc > div:nth-child('+ 
parseInt($this.index()) +')').stop(true).
animate({'width':offsetLeft+'px'},
400, 'easeOutExpo');
//переместить абсолютный div до этого пункта
moveTo($this,400);
})
.bind('mouseleave',function(){
var $this = $(this);
var offsetLeft = $this.offset().left - 20;
//выскальзывание описание
$('#slidingMenuDesc > div:nth-child('+ 
parseInt($this.index()) +')').stop(true).
animate({'width':'0px'},400, 'easeOutExpo');
});;

/ **
* Движения абсолютного DIV-ва,
* С определенной скоростью,
* На должноное место $elem
* /
function moveTo($elem,speed){
$moving.stop(true).animate({
top		: $elem[0].offsetTop + 'px',
width	: $elem[0].offsetWidth + 'px'
}, speed, 'easeOutExpo');
}
}) ;
});

Мы выбираем первый пункт по умолчанию, который является нашим "Home". Когда мы наведём курсор мыши на пункт меню мы будем двигать li.move в правильную позицию и выдвинем в соответствии с описанием пункта меню.

Мы надеемся, что вам понравилось и вы найдёте этот урок полезным!



Больше информации читайте по теме:



Оценить статью:

Оценивая статью, Вы подсказываете нам насколько данная информация стала полезной именно для Вас. Мы ожидаем, прежде всего, оценку доступности материала для понимания и простоты его изложения. Дополнительные комментари, вопросы, дополнения и замечания Вы можете указать на странице От Вас

Частичное, или полное копирование материала данной статьи возможно лишь при размещении ссылки на данную страницу.


            
        


        Скрытый ангел    28.07.2010 12:28:44
        

Спасибо автору - супер урок!




Имя:  


Текст комментариев (не больше 600 знаков):  
введите не более 600 знаков



Введите символы с картинки:
Капча имеет "срок годности". Поэтому, если необходимо обновите страницу.



Черный список покупателей
c# курс Гудок   курс по ASP.NET Гудок   курс по ADO.NET Гудок   курс по XML txt Гудок   курс по рефлексии и многопоточности Гудок