2 244 Скрипты / Menu & Nav

Меню - "сюрприз"


Меню под названием "сюрприз" с эффектами easing. Простенько исимпатично. Реализовано на jQuery и CSS3.  

HTML

Простенькая разметочка. Опять используем для навигации неупорядоченный список:

<div id="menu">
    <ul id="nav">
        <li>
            <a href="#" class="icon1">
                <span>Главная</span>
            </a>
        </li>
        <li>
            <a href="#" class="icon2">
                <span>Портфолио</span>
            </a>
        </li>    
        <li>
            <a href="#" class="icon3">
                <span>Наш блог</span>
            </a>
        </li>
        <li>
            <a href="#" class="icon4">
                <span>Услуги</span>
            </a>
        </li>    
    </ul>
</div>

CSS

#menu {
  width: 100%;
  background: #a7cfdf;
  /* Old browsers */
  background: -moz-radial-gradient(center, ellipse cover, #a7cfdf 0%, #23538a 100%);
  /* FF3.6+ */
  background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #a7cfdf), color-stop(100%, #23538a));
  /* Chrome,Safari4+ */
  background: -webkit-radial-gradient(center, ellipse cover, #a7cfdf 0%, #23538a 100%);
  /* Chrome10+,Safari5.1+ */
  background: -o-radial-gradient(center, ellipse cover, #a7cfdf 0%, #23538a 100%);
  /* Opera 12+ */
  background: -ms-radial-gradient(center, ellipse cover, #a7cfdf 0%, #23538a 100%);
  /* IE10+ */
  background: radial-gradient(center, ellipse cover, #a7cfdf 0%, #23538a 100%);
  /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#a7cfdf', endColorstr='#23538a', GradientType=1);
  /* IE6-9 fallback on horizontal gradient */
  position: relative;
  margin-top: 100px;
  border-top: 4px solid #eee;
  border-bottom: 4px solid #FFF;
  overflow: hidden;
}

/*======== Horizontal menu =========*/
#nav {
  z-index: 99999;
  margin: 0;
  padding: 0;
}
#nav li a, #nav li {
  float: left;
}
#nav li {
  list-style: none;
  position: relative;
}
#nav li a {
  padding: 0 10px;
  width: 130px;
  height: 102px;
  text-decoration: none;
  margin: 0;
  font-size: 12px;
  font-weight: 400;
  text-transform: uppercase;
  text-align: center;
  color: #FFF;
}
#nav li a.icon1 {
  background: url(../images/11.png) no-repeat center 0;
}
#nav li a.icon2 {
  background: url(../images/22.png) no-repeat center 0;
}
#nav li a.icon3 {
  background: url(../images/33.png) no-repeat center 0;
}
#nav li a.icon4 {
  background: url(../images/44.png) no-repeat center 0;
}
#nav li a span {
  position: absolute;
  top: 70px;
  left: 0;
  right: 0;
  font-size: 17px;
  color: #cfcfcf;
}
#nav li a:hover span {
  color: #fff;
}

JS

Подключаем jQuery, easing и backgroundPosition. И добавляем код вызова для меню:

<script type="text/jаvascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/jаvascript" src="js/jquery.backgroundPosition.js"></script>
<script type="text/jаvascript" src="js/jquery.easing.1.3.js"></script>
<script type="text/jаvascript">
$(function(){
    $('#nav li a')
        .css( {backgroundPosition: "52px -240px"} )
        .mouseover(function(){
            $(this).stop().animate({backgroundPosition:"(52px 10px)"}, {duration:1500, easing : 'easeOutElastic'})
        })
        .mouseout(function(){
            $(this).stop().animate({backgroundPosition:"(52px -240px)"}, {duration:500, easing : 'easeOutCubic', complete:function(){
                $(this).css({backgroundPosition: "52px -240px"})
            }})
        })
        
});
</script>

Анимация в данном примере (скрипт взят из Демо 1) использует эффекты easeOutElastic и easeOutCubic. Эти значения можно поменять на другие, которые поддерживает плагин easing - http://gsgd.co.uk/sandbox/jquery/easing/

Скачать 643Загрузок 13,13 Kb
Демо

Комментарии

  • Facebook
  • Вконтакте

Похожие статьи