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

Установка:

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

HTML:

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

CSS:

JS:

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

Настройки:

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

Меню на графическом фоне, который меняется при выборе каждого пункта

Многоуровневое вертикальное меню с выпадающим списком по клику на плюсик

Вертикальный аккордеон с раскрывающимися по клику фотографиями

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

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

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

  • Михаил:

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

    Ответить
    • Alexander:

      На разные кнопки так:
      [b]HTML:[/b]
      [code]<button class="open-btn">Открыть все</button>
      <button class="close-btn">Закрыть все</button>[/code]
      [b]jQuery:[/b]
      [code]$('.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');
      }); [/code]

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

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

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

    Ответить
    • Alexander:

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

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

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

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

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

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

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

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

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

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

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

    Ответить
    • Alexander:

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

      Ответить
  • ProWeb:

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

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

    Ответить
    • Alexander:

      А [b]accordion-header[/b] не забываете?
      Можете попробывать в вакууме на [url="https://codepen.io/atuin/pen/rNNvzpM"]codepen[/url]

      Ответить
  • Inariari:

    Спасибо за отличный аккордеон, мне кажется что для людей которые не особо понимают что и как делается и копипастят бездумно следует добавить что :
    -подключаем сначала jQuerry
    -копируем JS код в [*].js
    -подключаем [*].js внизу страницы
    -в [*].js после добавления кода аккордеона не забываем его включить строчками
    [code]$(function() {
    $('.accordion-group').simpleAccordion();
    });[/code]
    =)

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

      Да, данный комментарий весьма полезен+ скопировал на https://codepen.io/atuin/pen/rNNvzpM код из .js и вставил в свой .js = всё сразу заработало как положено.

      Ответить
  • Dinar:

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

    Ответить
    • Alexander:

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

      Ответить
      • Dinar:

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

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

        Ответить
        • Alexander:

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

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

          Ответить
          • Dinar:

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

            Ответить
            • Alexander:

              Автозаменой все [b]$[/b] на [b]jQuery[/b]

              или еще проще

              Код из [i]//setting.js[/i] поместите в:
              [code](function ($) {
              // код
              }(jQuery));[/code]
              А то что у вас ниже
              [code]//jquery.js
              $(function() {
              $('.accordion-group').simpleAccordion();
              });[/code]
              Это лишнее, аккордион у вас подключается в setting с настройками.

              Ответить
              • Dinar:

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

              • Alexander:

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

  • Алекс:

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

    Ответить
    • Alexander:

      Убрать [code]default-open[/code] у заголовка

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

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

        Ответить
        • Alexander:

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

          Ответить