jQuery

Плагін jQuery Accordion

Last updated: 10.10.2025
Views: 131

На сайтах часто використовується акордеон. Цей елемент популярний і в той же час зручний. Акордеон допомагає структурувати контент і економить місце. У своїй роботі я часто використовував jQuery (і іноді використовую його зараз). І за допомогою цієї бібліотеки я написав плагін акордеону для використання в різних проектах. Плагін базується на методі slideToggle(). Можливо комусь, цей плагін також буде корисним. Тому і я опублікував код у цій замітці. Крім того, в одній із попередніх статей ми розглянули плагін jQuery табів.

HTML

<div class="accordion">
     <div class="acc-title">
          Caption 1
     </div>
     <div class="acc-cont">
          Lorem ipsum dolor sit amet, consectetur adipisicing elit. Deleniti eius  quisquam excepturi eaque a soluta laborum delectus in culpa! Necessitatibus ea obcaecati.
     </div>
      <div class="acc-title">
          Caption 2
     </div>
     <div class="acc-cont">
          Lorem ipsum dolor sit amet, consectetur adipisicing elit. Deleniti eius quisquam excepturi eaque a soluta laborum delectus in culpa! Necessitatibus ea obcaecati.
     </div>
      <div class="acc-title">
          Caption 3
     </div>
     <div class="acc-cont">
       It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages.
     </div>
</div>

CSS

/* required styles */
.acc-cont {
     display: none; /*hide content*/
}

Ініціалізація

$(() => {

   $('.accordion').simpleAccordion();
     
});

Ініціалізація з параметрами

$(() => {
 
   $('.accordion').simpleAccordion({
     'title' : '.othertitle',
     'content': '.othercontent', 
     'cb': callbackFunction, 
     'speed': 500 
   });
      
});

Код плагіна

$.fn.simpleAccordion = function(options) {

  const settings = $.extend({
    'title': '.acc-title',
    'content': '.acc-cont',
    'cb': '',
    'speed': 400
  }, options);

  const accTitle = $(this).find(settings.title);

  accTitle.on('click', function() {
    if (!$(this).next().is(':visible')) {
      $(settings.content).slideUp(settings.speed);
      $(settings.title).removeClass('active');
    }
    $(this).next().stop().slideToggle(settings.speed);
    $(this).toggleClass('active');
    if (settings.cb) {
      settings.cb();
    }
  });
};

Ви можете побачити приклад використання плагіна jQuery на Codepen: https://codepen.io/igorrybalko/pen/EaYNyWx

author
Автор: Ігор Рибалко
Працюю фронтенд розробником з 2014 року. Основний стек технологій - Vue.js і WordPress

Схожі записи:

  • Простий годинник на JavaScript
    Існує багато прикладів реалізації годинника за допомогою JavaScript, і хоча підходи можуть дещо відрізнятися, більшість із них дотримуються схожої ідеї. Як правило, така ...
  • Компонент акордеона Vue
    Простий та легкий плагін компонента акордеон для Vue 3. Підтримує як глобальну реєстрацію плагінів, так і локальне використання компонентів. Написано на TypeScript. Компо...
  • Як створити власний плагін jQuery
    Зручність плагіна jQuery полягає в тому, що ви можете використовувати один і той же код кілька разів для різних об’єктів. У цьому випадку копіювати та вставляти код не по...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Blue Captcha Image
Refresh

*