Роликовое меню

Роликовое меню

Для доступа к файлам пожалуйста Авторизуйтесь либо Зарегистрируйтесь!

Не так давно нашел очень своеобразное меню, работающее на jQuery и CSS3. Очень сильно напоминает игрушку yo-yo. Подойдет как для частных проектов, так и для бизнес решений. Такое меню украсит ваш сайт, особенно если вы любите поражать своих гостей интересными спец эффектами.

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

Создаем HTML основу меню

<!-- Данный раздел html создает список меню с присвоением иконок каждому разделу //-->
<div class="menu">
<div class="item">
<a class="link icon_mail"></a>
<div class="item_content">
<h2>Связаться</h2>
<p>
<a href="mailto:name@gmail.com">eMail</a>
<a href="http://twitter.com/name/">Twitter</a>
<a href="http://friendfeed.com/name"> Friendfeed</a>
</p>
</div>
</div>
<div class="item">
<a class="link icon_help"></a>
<div class="item_content">
<h2>Помощь</h2>
<p>
<a href="#">FAQ</a>
<a href="#">Помощь онлайн</a>
<a href="#">Заявки</a>
</p>
</div>
</div>
<div class="item">
<a class="link icon_find"></a>
<div class="item_content">
<h2>Поиск</h2>
<p>
<input type="text"/>
<a href="">Искать</a>
</p>
</div>
</div>
<div class="item">
<a class="link icon_photos"></a>
<div class="item_content">
<h2>Галлерея</h2>
<p>
<a href="#">Категории</a>
<a href="#">Архивы</a>
<a href="#">Рекомендуемые</a>
</p>
</div>
</div>
<div class="item">
<a class="link icon_home"></a>
<div class="item_content">
<h2>Начнем здесь</h2>
<p>
<a href="#">Услуги</a>
<a href="#">Портфулио</a>
<a href="#">Цены</a>
</p>
</div>
</div>
</div>

После того, как мы создали меню, можно приступить к рассмотрению css стиля. Здесь будет крупный разбор полета, поэтому каждый раздел будет разделен соответствующим комментарием. Приступим…

Стилистическая основа меню

/* Здесь мы настраиваем общий вид нашего меню */
.menu{
width:800px;
height:52px;
position:relative;
top:200px;
left:100px;
font-family: "Trebuchet MS", sans-serif;
font-size: 16px;
font-style: normal;
font-weight: bold;
text-transform: uppercase;
}

/* Данный раздел отвечает за правильное раскрытие меню */
.item{
position:relative;
background-color:#f0f0f0;
float:right;
width:52px;
margin:0px 5px;
height:52px;
border:2px solid #ddd;
-moz-border-radius:30px;
-webkit-border-radius:30px;
border-radius:30px;
-moz-box-shadow:1px 1px 3px #555;
-webkit-box-shadow:1px 1px 3px #555;
box-shadow:1px 1px 3px #555;
cursor:pointer;
overflow:hidden;
}

/* Ну а здесь задаются иконки меню */
.link{
left:2px;
top:2px;
position:absolute;
width:48px;
height:48px;
}
.icon_home{
background:transparent url(../images/home.png) no-repeat top left;
}
.icon_mail{
background:transparent url(../images/mail.png) no-repeat top left;
}
.icon_help{
background:transparent url(../images/help.png) no-repeat top left;
}
.icon_find{
background:transparent url(../images/find.png) no-repeat top left;
}
.icon_photos{
background:transparent url(../images/photos.png) no-repeat top left;
}

/* Остальная стилизация, на которой я не стану заострять внимания */
.item_content{
position:absolute;
height:52px;
width:220px;
overflow:hidden;
left:56px;
top:7px;
background:transparent;
display:none;
}
.item_content h2{
color:#aaa;
text-shadow: 1px 1px 1px #fff;
background-color:transparent;
font-size:14px;
}
.item_content a{
background-color:transparent;
float:left;
margin-right:7px;
margin-top:3px;
color:#bbb;
text-shadow: 1px 1px 1px #fff;
text-decoration:none;
font-size:12px;
}
.item_content a:hover{
color:#0b965b;
}
.item_content p {
background-color:transparent;
display:none;
}
.item_content p input{
border:1px solid #ccc;
padding:1px;
width:155px;
float:left;
margin-right:5px;
}

В самом конце подключаем Javascript и jQuery. Данный фрагмент кода располагается в самом конце html-документа, до закрывающегося тега <body>.

Javascript

<!-- Подключаем скрипты //-->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="jquery-css-transform.js" type="text/javascript"></script>
<script src="jquery-animate-css-rotate-scale.js" type="text/javascript"></script>
<script>
$('.item').hover(
function(){
var $this = $(this);
expand($this);
},
function(){
var $this = $(this);
collapse($this);
}
);
function expand($elem){
var angle = 0;
var t = setInterval(function () {
if(angle == 1440){
clearInterval(t);
return;
}
angle += 40;
$('.link',$elem).stop().animate({rotate: '+=-40deg'}, 0);
},10);
$elem.stop().animate({width:'268px'}, 1000)
.find('.item_content').fadeIn(400,function(){
$(this).find('p').stop(true,true).fadeIn(600);
});
}
function collapse($elem){
var angle = 1440;
var t = setInterval(function () {
if(angle == 0){
clearInterval(t);
return;
}
angle -= 40;
$('.link',$elem).stop().animate({rotate: '+=40deg'}, 0);
},10);
$elem.stop().animate({width:'52px'}, 1000).find('.item_content').stop(true,true).fadeOut(). find('p').stop(true,true).fadeOut();
}
</script>

Здесь описывается 2 функции: расширения и сужения. Функция расширения заставит иконку вращаться 4 иконки вокруг себя (360 умножить на 4 = 1440). Также мы сделаем расширение элемента анимируя ширину. Далее мы позволим появится контенту. Функция сужения будет вращать иконку назад, таким образом уменьшая ширину контента до полного исчезновения.

Информация о загрузках

Роликовое меню (126.5 KB, 35 скачиваний)
Файл залит 15.07.2010 в 22:20

Для доступа к файлам пожалуйста Авторизуйтесь либо Зарегистрируйтесь!

9 Комментария(ев)

  1. Ivan RUSSIAN FEDERATION

    Почему так медленно выезжает ? ;)
    С левой стороны полоска внизу так и была предусмотрена?

    • Возможно у вас не очень мощный компьютер, либо просто необходимо установить последние обновления для браузера. Смотря каким вы пользуетесь. У меня все работает прекрасно.

  2. Поздравляю вас Старо-Новым годом, желаю вам в новом году успехов и спасибо что вы находите время поддерживать ваш замечательный блог!

  3. Хороший у вас блог! удачи в развитии

  4. спасибо было очень интересно прочитать

  5. Блог супер! статья очень заинтересовала

  6. Kievtselitelstvo LATVIA

    Харошый у тебя блог. Добавляю в закладки.

  7. Скажите admin, а адаптация на jimdo возможна?

Ваши комментарии

Добро пожаловать на ruVisio

Если вы еще не зарегистрированы, то желательно сделать это побыстрее :)

Авторизация

Забыли пароль?

Регистрация