Google+ Blogger WordPress Facebook Like Vkontakte Odnoklassniki LiveJournal vKruguDruzei Facebook Email Gmail
понедельник, 16 апреля 2018 г.

Вертикальное аккордеон меню на CSS3 и jQuery


Вот как оно, меню, выглядит
DEMO 
Установка:

Для на чала пропишим стили аккордеона, в css вставляете код:
  1. .accordion-container{
  2.            position: relative;
  3.            width: 500px;
  4.            height: auto;
  5.            margin: 20px auto;
  6. }
  7. .accordion-container > h2{
  8.            text-align: center;
  9.            color: #fff;
  10.            padding-bottom: 5px;
  11.            margin-bottom: 30px;
  12.            border-bottom: 1px solid #ddd;
  13. }
  14. .set{
  15.            position: relative;
  16.            width: 100%;
  17.            height: auto;
  18.            background-color: #f5f5f5;
  19. }
  20. .set > a{
  21.            display: block;
  22.            padding: 10px 15px;
  23.            text-decoration: none;
  24.            color: #555;
  25.            font-weight: 600;
  26.            border-bottom: 1px solid #ddd;
  27.            -webkit-transition:all 0.2s linear;
  28.            -moz-transition:all 0.2s linear;
  29.            transition:all 0.2s linear;
  30. }
  31. .set > a i{
  32.            position:relative;
  33.            float: right;
  34.            margin-top:4px;
  35.            color: #666;
  36. }
  37. .set > a.active{
  38.            background-color:#3399cc;
  39.            color: #fff;
  40. }
  41. .set > a.active i{
  42.            color: #fff;
  43. }
  44. .content-accordion{
  45.            position:relative;
  46.            width: 100%;
  47.            height: auto;
  48.            background-color: #fff;
  49.            border-bottom: 1px solid #ddd;
  50.            display:none;
  51. }
  52. .content-accordion p{
  53.            padding: 10px 15px;
  54.            margin: 0;
  55.            color: #333;
  56. }
Где хотите видеть аккордеон вкладки вставляете код:
  1. <div class="accordion-container">
  2.            <div class="set">
  3.            <a href="#">
  4.            Первая вкадка
  5.            <i class="fa fa-plus"></i>
  6.            </a>
  7.            <div class="content-accordion">
  8.            <p>Содержимое 1 вкладки</p>
  9.            </div>
  10.            </div>
  11.            <div class="set">
  12.            <a href="#">
  13.            Вторая вкладка
  14.            <i class="fa fa-plus"></i>
  15.            </a>
  16.            <div class="content-accordion">
  17.            <p>Содержимое 2 вкладки</p>
  18.            </div>
  19.            </div>
  20.            <div class="set">
  21.            <a href="#">
  22.            Третья вкладка
  23.            <i class="fa fa-plus"></i>
  24.            </a>
  25.            <div class="content-accordion">
  26.            <p>Содержимое 3 вкладки</p>
  27.            </div>
  28.            </div>
  29.            <div class="set">
  30.            <a href="#">
  31.            Четвертая вкладка
  32.            <i class="fa fa-plus"></i>           
  33.            </a>
  34.            <div class="content-accordion">
  35.            <p>Содержимое 4 вкладки</p>
  36.            </div>
  37.            </div>
  38. </div>

Ну и перед закрывающим тегом </body> вставляете код:
  1. <script>$(document).ready(function(){
  2.            $(".set > a").on("click", function(){
  3.            if($(this).hasClass('active')){
  4.            $(this).removeClass("active");
  5.            $(this).siblings('.content-accordion').slideUp(200);
  6.            $(".set > a i").removeClass("fa-minus").addClass("fa-plus");
  7.            }else{
  8.            $(".set > a i").removeClass("fa-minus").addClass("fa-plus");
  9.            $(this).find("i").removeClass("fa-plus").addClass("fa-minus");
  10.            $(".set > a").removeClass("active");
  11.            $(this).addClass("active");
  12.            $('.content-accordion').slideUp(200);
  13.            $(this).siblings('.content-accordion').slideDown(200);
  14.            }
  15.                      
  16.            });
  17. });</script>

Я взял на себя инициативу и добавил в скрипт функцию, которая скрывает подменю по повторному клику на ссылку раздела, в оригинале, на сайте создателя (DesignModo) этого чудесного меню, ее не было. Мне, почему-то так больше нравится, иначе постоянно виден какой-то из открытых разделов, а так, захотел - скрыл.
По многочисленным просьбам, в статье Улучшенный скрипт для вертикального аккордеон меню выкладываю другой(дополненный) вариант скрипта этого меню, с открытием раздела и подсветкой ссылки соответствующей текущей страницы.

Как установить данное аккордеон меню в блог на Blogger

1. Проверяете подключен ли к вашему блогу фрейиворк jQeury. Если нет и ранее вы этого не делали - подключаете, подробнее как это сделать читайте здесь.
2. Создаете новый гаджет HTML/JavaScript и размещаете в нем, HTML код менюшки, стили и скрипт.
CSS код в гаджете размешается между тегами <style>/</style>;
Скрипт - между тегами <script>/</script>
Никаких манипуляций непосредственно с кодом шаблона производить не нужно. скачать
источник

Получил я в комментариях заявку: "Подскажите, а у вас нет случайно скрипта для вертикального меню, типа Аккордеон?" И появилась у меня идея опубликовать пост на эту тему.
3040753_beautifulaccordion (274x220, 22Kb)
Как выглядит меню, можно посмотреть на тестовом блоге: [url]http://blogodeltest2.blogspot.com/[/url]
Сам скрипт вставляется просто: надо добавить код: В Дизайн - Добавить гаджет - HTML/JavaScript (жёлтый) фон это цвет меню, который можно поменять).
<style>
#mymenu  {
 width: 200px;
 margin: 0 auto;
}
#mymenu .mydiv {
 width: 200px;/*ширина всего меню*/
 transition: height ease-in-out 500ms;
 -o-transition: height ease-in-out 500ms;
 -moz-transition: height ease-in-out 500ms;
 -webkit-transition: height ease-in-out 500ms;
 border-radius: 15px;
 -moz-border-radius: 15px;
 -webkit-border-radius: 15px;
}
.mydiv h3{height: 45px;
 cursor:pointer;
 margin: 0 0 0 0;
 text-align: center;
 color:white;padding: 12px 0px 0px 0px;
 border-radius: 8px;
 -moz-border-radius: 8px;
 -webkit-border-radius: 8px;
 background: #999999;/*цвет наружного меню*/ 
}
#mymenu p {
 text-align: center;
 margin: 0 0 1px 0;
 height: 0px;
 overflow: hidden;
 transition: height ease-in-out 500ms;
 -o-transition: height ease-in-out 500ms;
 -moz-transition: height ease-in-out 500ms;
 -webkit-transition: height ease-in-out 500ms;
 border-radius: 8px;
 -moz-border-radius: 8px;
 -webkit-border-radius: 8px;
 background: #cccccc; /*цвет фона внутреннего меню*/
filter: progid:DXImageTransform.Microsoft.gradient
        ( startColorstr='#E1A3370', endColorstr='#E1A337',GradientType=0 );
}

#mymenu p:hover {
 background: #999999;
 cursor:pointer;
}
#mymenu div:hover  > p {
 height: 45px;padding: 12px 0px 0px 0px;
}

* html #mymenu .mydiv  {
 filter: progid:DXImageTransform.Microsoft.gradient
        (startColorstr='#4EAEC1', endColorstr='#055261',GradientType=0 );
 height: 45px;
 overflow: hidden;
 forIE: expression(
  onmouseover = function()  {this.className += ' hover'},
  onmouseout = function() {this.className = this.className.replace('hover', '')}
  );
}
* html #mymenu .mydiv.hover  {
 height: auto;
}
#mymenu p a {
 color:white;
}
</style>

<div  id="mymenu">
    <div class="mydiv">
        <h3 >Меню 1</h3>
  <p><a href = "#">Под меню1</a></p>
  <p><a href = "#">Под меню2</a></p>
 </div>
    <div class="mydiv">
  <h3>Меню 2</h3>
  <p><a href = "#">Под меню1</a></p>
  <p><a href = "#">Под меню2</a></p>
  <p><a href = "#">Под меню3</a></p>
    </div>
    <div class="mydiv">
 <h3>Меню 3</h3>
  <p><a href = "#">Под меню1</a></p>
  <p><a href = "#">Под меню2</a></p>
  <p><a href = "#">Под меню3</a></p>
  <p><a href = "#">Под меню4</a></p>
     </div>
    <div class="mydiv">
 <h3>Меню 4</h3>
  <p><a href = "#">Под меню1</a></p>
  <p><a href = "#">Под меню2</a></p>
  <p><a href = "#">Под меню3</a></p>
  <p><a href = "#">Под меню4</a></p>
  <p><a href = "#">Под меню5</a></p>
    </div></div>
Горизонтальное выпадащее меню
код добавить: В Дизайн - Добавить гаджет - HTML/JavaScript
<style>/* Главное меню */
#menu
{
width: 100%;
margin: 0;
padding: 10px 0 0 0;
list-style: none;
background: #874006;
background: -moz-linear-gradient(#BF6306, #874006);
background: -webkit-gradient(linear,left bottom,left top,color-stop(0, #874006),color-stop(1, #BF6306));
background: -webkit-linear-gradient(#BF6306, #874006);
background: -o-linear-gradient(#BF6306, #874006);
background: -ms-linear-gradient(#BF6306, #874006);
background: linear-gradient(#BF6306, #874006);
-moz-border-radius: 50px;
border-radius: 50px;
-moz-box-shadow: 0 2px 1px #874006;
-webkit-box-shadow: 0 2px 1px #874006;
box-shadow: 0 2px 1px #874006;
}
#menu li
{
float: left;
padding: 0 0 10px 0;
position: relative;
}
#menu a
{
float: left;
height: 25px;
padding: 0 25px;
color: #ffffff;
text-transform: uppercase;
font: bold 12px/25px Arial, Helvetica;
text-decoration: none;
text-shadow: 0 1px 0 #000;
}
#menu li:hover > a
{
color: #fafafa;
}
*html #menu li a:hover /* IE6 */
{
color: #fafafa;
}
#menu li:hover > ul
{
display: block;
}
/* Подменю */
#menu ul
{
list-style: none;
margin: 0;
padding: 0;
display: none;
position: absolute;
top: 35px;
left: 0;
z-index: 99999;
background: #BF6306;
background: -moz-linear-gradient(#BF6306, #783B08);
background: -webkit-gradient(linear,left bottom,left top,color-stop(0, #783B08),color-stop(1, #BF6306));
background: -webkit-linear-gradient(#BF6306, #783B08);
background: -o-linear-gradient(#BF6306, #783B08);
background: -ms-linear-gradient(#BF6306, #783B08);
background: linear-gradient(#BF6306, #783B08);
-moz-border-radius: 5px;
border-radius: 5px;
}
#menu ul li
{
float: none;
margin: 0;
padding: 0;
display: block;
-moz-box-shadow: 0 1px 0 #111111, 0 2px 0 #777777;
-webkit-box-shadow: 0 1px 0 #111111, 0 2px 0 #777777;
box-shadow: 0 1px 0 #111111, 0 2px 0 #777777;
}
#menu ul li:last-child
{
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
}
#menu ul a
{
padding: 10px;
height: auto;
line-height: 1;
display: block;
white-space: nowrap;
float: none;
text-transform: none;
}
*html #menu ul a /* IE6 */
{
height: 10px;
width: 150px;
}
*:first-child+html #menu ul a /* IE7 */
{
height: 10px;
width: 150px;
}
#menu ul a:hover
{
background: #9A1B19;
background: -moz-linear-gradient(#562F24,  #9A1B19);
background: -webkit-gradient(linear, left top, left bottom, from(#562F24), to(#9A1B19));
background: -webkit-linear-gradient(#562F24,  #9A1B19);
background: -o-linear-gradient(#562F24,  #9A1B19);
background: -ms-linear-gradient(#562F24,  #9A1B19);
background: linear-gradient(#562F24,  #9A1B19);
}
#menu ul li:first-child a
{
-moz-border-radius: 5px 5px 0 0;
border-radius: 5px 5px 0 0;
}
#menu ul li:first-child a:after
{
content: '';
position: absolute;
left: 30px;
top: -8px;
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-bottom: 8px solid #874006;
}
#menu ul li:first-child a:hover:after
{
border-bottom-color: #5D2D23;
}
#menu ul li:last-child a
{
-moz-border-radius: 0 0 5px 5px;
border-radius: 0 0 5px 5px;
}
#menu:after
{
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
* html #menu             { zoom: 1; } /* IE6 */
*:first-child+html #menu { zoom: 1; } /* IE7 */
#menu ul li:first-child a:after
{
    content: '';
    position: absolute;
    left: 30px;
    top: -8px;
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 8px solid #BF6306;
}
#menu ul li:first-child a:hover:after
{
    border-bottom-color: #5D2D23;
}
* html #menu             { zoom: 1; } /* IE6 */
*:first-child+html #menu { zoom: 1; } /* IE7 */
</style><ul id="menu">
  <li><a href="#">ГЛАВНАЯ</a></li>
  <li>
  <a href="#">КАТЕГОРИИ</a>
        <ul>
        <li><a href="#">Виджеты</a></li>
        <li><a href="#">Украшения</a></li>
        <li><a href="#">Настройка блога</a></li>
        <li><a href="#">Сервисы</a></li>
        </ul>
  </li>
  <li><a href="#">РОК'Н'РОЛЛ</a>
  <ul>
        <li><a href="#">Музыка</a></li>
        <li><a href="#">Биографии</a></li>
  </ul>
  </li>
  <li><a href="#">О ПРОЕКТЕ</a></li>
  <li><a href="#">КОНТАКТЫ</a></li>
</ul>



0 коммент.:

Отправить комментарий