/ Scripts & jquery / Прилепленное меню

Прилепленное меню

HIT

06.11.2015

3251

Делаем шапку сайта (включающую логотип, меню и контакты) прилепленной к верхнему краю экрана, при перемотке сайта вниз.

Оборачиваем необходимый для «прилеплевания» блок в div id=»stick_menu».

В данном сайте верстка такая:

<div style="height: 1px;"></div>
<div id="header">
<div id="stick_menu">

<div class="head-order">
<div id="logo"><a href="<?php bloginfo('url'); ?>"><img class="visible" src="<?php echo get_theme_mod( 'true_logo' ); ?>"></a></div>
<div id="slogan"><table><tr><td><?php bloginfo('description'); ?></td></tr></table></div>
<div id="phone"><table><tr><td><i class="fa fa-phone"></i> <?php echo get_theme_mod( 'true_phone' ); ?></td></tr></table></div>
<div id="mail"><table><tr><td><a href="mailto:<?php echo get_theme_mod( 'true_email' ); ?>"><i class="fa fa-envelope-o"></i> <?php echo get_theme_mod( 'true_email' ); ?></a></td></tr></table></div>
</div>

<div id="nav-block">
<div id="navigate">

<nav role="navigation">
<?php wp_nav_menu( array( 'theme_location' => 'header-menu' ) ); ?>
<li class="menu-item call-item" style="cursor:pointer;"><a><i class="fa fa-phone"></i> Звонок</a></li>
<li class="menu-item search-item" style="cursor:pointer;"><a><i class="fa fa-search"></i> Поиск</a></li>
</nav>

</div>
</div>

</div>
</div> <!-- конец header -->

Для того чтобы блок возвращался к исходному состоянию при полной перемотке вверх, надо добавить div с высотой 1px

<div style="height: 1px;"></div>

Script

$(document).ready(function() {

// Прилепленное меню

if($("div").is("#stick_menu")) {

var start_pos=$('#stick_menu').offset().top;
 $(window).scroll(function(){
  if ($(window).scrollTop()>=start_pos) {
      if ($('#stick_menu').hasClass()==false) $('#stick_menu').addClass('to_top');
  }
  else $('#stick_menu').removeClass('to_top');
 });

}

});

CSS

/*Приклееное меню*/

.to_top {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 99;
  background-color: rgba(0, 0, 0, 0.7);
}

.to_top li{
line-height: 20px !important;
font-size: 12px;
font-weight: bold;
transition: line-height 0.5s, background-color 0.5s, border 0.5s;
-webkit-transition: line-height 0.5s ease 0s, background-color 0.5s ease 0s, border 0.5s ease 0s;  
}

#stick_menu {
    float:left;
    width:100%;
    list-style:none;
    font-size: 12px;
    width: 80%;
    padding: 0 10%;
    background-color: rgba(0, 0, 0, 0.7);
    box-shadow: 0px 0px 16px #000;
}    

#stick_menu li {
    float:left;
    position:relative;
    display:block;
    width: 10%;
    line-height: 40px; 
    box-sizing: border-box;
    border-top: 2px solid rgba(255, 255, 255, 0);
    transition: line-height 0.5s, background-color 0.5s, border 0.5s;
    -webkit-transition: line-height 0.5s ease 0s, background-color 0.5s ease 0s, border 0.5s ease 0s;
}

#stick_menu li a {
	display:block;
	padding: 2px 10px;
	color:#fff;
	text-decoration:none;
        position: relative;
}
Для плавности эффекта перехода (чтоб не было скачков) для исходного элемента (в самом верхнем положении) прописать свойство высоты. В нашем случае div header

Чтоб менялись свойства элементов входящих в прилепленный header при прокрутке вниз надо добавлять свойства CSS, примеры:

#logo img {
width: 70%;
float: left;
transition: width 0.5s ease;
-webkit-transition: width 0.5s ease 0s;  
}

.to_top #logo img {width: 35%;}

#slogan table, #phone table, #mail table {
    vertical-align: middle;
    height: 50px;
    transition: height 0.5s ease;
    -webkit-transition: height 0.5s ease 0s; 
}
  
.to_top #slogan table, .to_top #phone table, .to_top #mail table {height: 25px;}

#nav-block {
  float: left;
  position: relative;
  width: 100%;
  height: 40px;
  transition: height 0.5s ease;
  -webkit-transition: height 0.5s ease 0s;
}

.to_top #nav-block {height: 30px;}

Поделиться в соц. сетях:

  • Похожие записи
  • Комментарии
  • Вложения
Меню для мобильной версии

Меню для мобильной версии

Делаем простую адаптацию меню под мобильную версию, превращая в иконку, при нажатии на которую меню раскрывается. Трансформируем меню в иконку Стандартный код вывода меню <nav id="topmenu" role="navigation"> <?php wp_nav_menu( array( Читать далее »

/
Фиксированное меню 2.0

Фиксированное меню 2.0

Продолжая работать над совершенствованием фиксированного меню, нашел следующее решение. Верстка фиксируемого блока <div id="stick_menu" class="default"> В отличие от предыдущей версии меню, перед блоком ставить ничего не нужно. Стили для фиксированного Читать далее »

Вертикальное многоуровневое меню

Вертикальное многоуровневое меню

Создадим вертикальное многоуровневое меню. За основу берем верстку стандартного меню WordPress. Условно у меню будет id menu. Стили:

Добавить комментарий

Пока нет комментариев. Будь первым!

Прилепленное меню
Бонусная система
Рекомендации для васБонусная системаOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.