

Accordion HTML Structure

Notes: Duplicate accordion item as your need
Accordion CSS
/*accordion*/
.accordion {
width:100%;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
overflow:hidden;
}
.accordion_item {
width:100%;
background:color(1);
color:white;
}
.accordion_icon {
color:color(2);
}
.accordion_title {
cursor: pointer;
display: flex;
flex-direction: row;
justify-content: space-between;
width:100%;
-webkit-transition: all 0.4s ease;
-o-transition: all 0.4s ease;
transition: all 0.4s ease;
font-weight:600;
/*border-top:1px solid #00000010;
border-bottom:1px solid #00000010;*/
}
.accordion_content {
display: none;
width:100%;
}
.open .accordion_title {
color: #fff;
background:color(1);
border-radius:4px 4px 0 0;
}
.open .accordion_icon {
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
-o-transform: rotate(180deg);
transform: rotate(180deg);
}
.accordion_icon, .open .accordion_icon {
-webkit-transition: all 0.4s ease;
-o-transition: all 0.4s ease;
transition: all 0.4s ease;
}Notes: Modified CSS as your need
Accordion Javascript
jQuery(function() {
var Accordion = function(el, multiple) {
this.el = el || {};
this.multiple = multiple || false;
// Variables privadas
var links = this.el.find('.accordion_title');
// Evento
links.on('click', {el: this.el, multiple: this.multiple}, this.dropdown)
}
Accordion.prototype.dropdown = function(e) {
var $el = e.data.el;
$this = jQuery(this),
$next = $this.next();
$next.slideToggle();
$this.parent().toggleClass('open');
if (!e.data.multiple) {
$el.find('.accordion_content').not($next).slideUp().parent().removeClass('open');
};
}
var accordion = new Accordion(jQuery('.accordion'), false);
});
// if you want to open first accordion, you can add open class in first accordion_item and set accordion_content display to block
// if you use repeater module, you can try this code
jQuery(window).on('load', function() {
jQuery('.accordion_item:first-child').addClass('open');
jQuery('.accordion_item:first-child .accordion_content').css("display","block");
});
