Многоуровневый аккордеон

На примере этого аккордеона сделана эта заметка.

Установка:

Добавляем на сайт библиотеку jQuery, CSS и JS файлы

HTML:

Атрибут data-multiple определяет открытые вкладки (только одна или все)

CSS:

JS:

И подключаем скрипт:

Настройки:

Смотрите также:

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

Ваш комментарий отправлен!

Комментарии:

  • Михаил:

    Здравствуйте!
    Отличный аккордеон, но можно ли как-то сделать так, чтобы одной определенной кнопкой открывались и закрывались все элементы аккордеона?
    Буду признателен с:

    Ответить
    • Alexander:

      На разные кнопки так:
      HTML:

      <button class="open-btn">Открыть все</button>
      <button class="close-btn">Закрыть все</button>

      jQuery:

      $('.open-btn').click(function() {
      	$('.accordion-header').addClass('open');
      	$('.accordion-body').css('display', 'block');
      });	
      $('.close-btn').click(function() {
      	$('.accordion-header').removeClass('open');
      	$('.accordion-body').css('display', 'none');
      });	

      На одну кнопку тоже можно придумать, но там будет путаница и для пользователя, когда открыты вкладки, будет не понятно, складывать все или раскрывать.

      Ответить
  • Алексей:

    О почему анимация такая дерганная. Сначала чуть приоткрывает, а потом открывает доконца. Как сделать просто плавное раскрытие?

    Ответить
    • Alexander:

      У меня он не притормаживает, но примерно понимаю о чем вы.
      Эти все эффекты скорее зависят от нагрузки компа или браузера.
      И соответственно от того что анатомируется.
      Развернуть 10 строчек - одно, а менять так страницы сайта - тут можно зависнуть просто и вообще ничего не откроется.

      Ответить
      • Алексей.:

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

        Ответить
    • Алексей:

      Попробуйте вместо margin использовать padding

      Ответить
      • Алексей:

        Проблему решил, виноватым было свойство *{transoition.2s}. Видимо из-за того, что глобальное.

        Ответить
      • Алексей:

        Проблемы давно решил. Дергалось из-за глобального свойства transition. Было прописано через звездочку для всех элементов.

        Ответить
  • Сергей:

    Здравствуйте! Имею сайт одностраничный. Хочу в указанный аккордеон на каждый раздел установить юридический калькулятор . Устанавливаю скрипт на первый раздел калькулятор открывается. Добавляю скрипт на второй раздел не открывает. Подскажите пожалуйста, как это можно реализовать. С Большим к Вам уважением.

    Ответить
    • Alexander:

      Ну тут пример не помешал бы. Какая то ошибка...

      Ответить
  • ProWeb:

    Друзья, всем привет.

    Не получается в одной вкладке сделать несколько блоков с классом <div class="accordion-body">
    Дублирую этот див и он просто не появляется.

    Ответить
    • Alexander:

      А accordion-header не забываете?
      Можете попробывать в вакууме на codepen

      Ответить
  • Inariari:

    Спасибо за отличный аккордеон, мне кажется что для людей которые не особо понимают что и как делается и копипастят бездумно следует добавить что :
    -подключаем сначала jQuerry
    -копируем JS код в [*].js
    -подключаем [*].js внизу страницы
    -в [*].js после добавления кода аккордеона не забываем его включить строчками

    $(function() {
        $('.accordion-group').simpleAccordion();
    });

    =)

    Ответить
  • Dinar:

    Почему у меня не работает? =\ создаю файл html, css и js с помощью бутстрап. после этого запускаю браузер, нажимаю меню и она не открывается. Что не так? посмотрел консоль не было ошибок.

    Ответить
    • Alexander:

      Дайте ссылку.
      Кстати у бутстрапа есть свой аккордеон же

      Ответить
      • Dinar:

        Вот ссылка https://jsfiddle.net/k1unovrd/ это пример вам которые я создал файл html, css и js. Обратите внимание, что там прикрепил ссылка директорий setting.js - это настройка, jquery.js - подключении скрипт , test.js - у вас на статье спойлер "JS:". Далее посмотрите на результате, что оно никак не раскрывающий список. Никак.

        на счет бутстрапа.. Да свой, но вот только тяжело писать код для многоуровненвый и путаниц. А у вас покороче и понятнее, чем бутстрап.

        Ответить
        • Alexander:

          То что на jsfiddle у вас - у меня работает, если подключить jQuery 3, например.
          Если у вас подключена первая (версии не помню сейчас от какой до какой), например, 1.12.4, как в вордпрессе, то возникает ошибка: TypeError: $ is not a function (это из консоли)

          Чтобы полечить ее, замените $ на jQuery

          Ответить
          • Dinar:

            Странно.. как заменить $ на jQuery? прошу привести пример (не обязательно подробный исход. код)

            Ответить
            • Alexander:

              Автозаменой все $ на jQuery

              или еще проще

              Код из //setting.js поместите в:

              (function ($) {
              // код
              }(jQuery));

              А то что у вас ниже

              //jquery.js
              $(function() {
                  $('.accordion-group').simpleAccordion();
              });

              Это лишнее, аккордион у вас подключается в setting с настройками.

              Ответить
              • Dinar:

                Увы, не работает. Ладно, буду время - дольше изучу. А так спасибо за все;)

              • Alexander:

                https://codepen.io/atuin/pen/rNNvzpM

  • Алекс:

    А как сделать чтобы по умолчание даже первая вкладка была закрыта ?

    Ответить
    • Alexander:

      Убрать

      default-open

      у заголовка

      Ответить
      • Алекс:

        Спасибо дружище! И спасибо за твои посты! Ты супер!

        Ответить
        • Alexander:

          Рад был помочь, обращайтесь, если нужно 🙂

          Ответить