Ваш IP адрес: 216.73.216.20
Сегодня: 03.07.2025
18:23

Скрипты, шаблоны, софт для популярных CMS. Программы для PC

Приветствуем, дорогой пользователь на сайте scripts-for-you.ru! Здесь ты найдешь множество скриптов, шаблонов, хаков, движков для популяных CMS: Ucoz, DLE, Joomla, Wordpress.

Авторизация

Рекомендуем хостинг

Круглосуточная поддержка от HOSTiQ.ua

Счетчики


Онлайн всего: 1
Гостей: 1
Пользователей: 0



Забавное меню с помощью jQuery

АвторАвтор: Marques | ДатаДата: 29.09.2010, 16:37 | Раздел: Статьи веб-мастеру

В этом уроке мы создадим очень забавное меню, с помощью интересного jQuery патча

http://exfile.ru/113942
от Захария Джонсона. Мы создадим меню с маленькими иконками, которые будут вращаться при наведении. Также мы сделаем так, чтобы элементы меню расширялись и показывали контент внутри.

Давайте приступим...

Разметка

Для этого меню мы не будем создавать список, а будем создавать div. Все div с элементами меню мы поместим в общий div menu. Каждый элемент будет содержать иконку с ссылкой и div с заголовком и абзацем, куда мы будем добавлять содержимое.

Code
<div class="menu">
<div class="item">
<a class="link icon_mail"></a>
<div class="item_content">
<h2>Contact us</h2>



<a href="#">eMail</a>
<a href="#">Twitter</a>
<a href="#">Facebook</a>
</p>
</div>
</div>
<div class="item">
<a class="link icon_help"></a>
<div class="item_content">
<h2>Help</h2>



<a href="#">FAQ</a>
<a href="#">Live Support</a>
<a href="#">Tickets</a>
</p>
</div>
</div>
<div class="item">
<a class="link icon_find"></a>
<div class="item_content">
<h2>Search</h2>



<input type="text"></input>
<a href="">Go</a>
</p>
</div>
</div>
<div class="item">
<a class="link icon_photos"></a>
<div class="item_content">
<h2>Image Gallery</h2>



<a href="#">Categories</a>
<a href="#">Archives</a>
<a href="#">Featured</a>
</p>
</div>
</div>
<div class="item">
<a class="link icon_home"></a>
<div class="item_content">
<h2>Start from here</h2>



<a href="#">Services</a>
<a href="#">Portfolio</a>
<a href="#">Pricing</a>
</p>
</div>
</div>
</div>

Изначально div элемента будет под размер иконки, далее мы сделаем так, чтобы он расширялся и появлялся контент.

CSS

Общая настройки стилей для меню.

Code

.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;
}

Элементы внутри меню будут выровнены вправо, поскольку мы хотим чтобы меню раскрывалось влево и вытолкнуло другие элементы.

Code

.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;
}

Далее мы определяем стили для иконок следующим образом:

Code
.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;
}

Далее мы определяем стили для иконок следующим образом:

Code
.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 и патч Захария. После этого добавим следующее:

Code
$('.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();
}

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

Функция возврата будет вращать иконку назад, уменьшать ширину элемента и контент весь исчезнет.


Добавить страницу в закладки:

Теги к статье:

помощью, jquery, меню, забавное
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Всего комментариев: 0

Добавление комментария

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]