JSFiddle - React, Tailwind, and code Playground
by pixeloco
HTML
<div class="accordion-container">
<a href="#" class="accordion-toggle">Rome <span class="toggle-icon"></span></a>
<div class="accordion-content">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
<!--/.accordion-content-->
</div>
<!--/.accordion-container-->
<div class="accordion-container">
<a href="#" class="accordion-toggle">Florence<span class="toggle-icon"></span></a>
<div class="accordion-content">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
</div>
<!--/.accordion-content-->
</div>
<!--/.accordion-container-->
<div class="accordion-container">
<a href="#" class="accordion-toggle">Venice<span class="toggle-icon"></span></a>
<div class="accordion-content">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
<p>Sed ut...
CSS
.accordion-container {
width: 100%;
margin: 0 0 20px;
clear: both;
}
.accordion-toggle {
position: relative;
display: block;
padding: 20px;
font-size: 1.5em;
font-weight: 300;
background: #999;
color: #fff;
text-decoration: none;
}
.accordion-toggle.open {
background: #333;
color: #fff;
}
.accordion-toggle:hover {
background: #666;
}
.accordion-toggle span.toggle-icon {
position: absolute;
top: 9px;
right: 20px;
font-size: 1.5em;
}
.accordion-content {
display: none;
padding: 20px;
overflow: auto;
}
.toggle-icon:before {
content: "+";
}
.open .toggle-icon:before{
content: "-";
}
JavaScript
$(document).ready(function () {
$('.accordion-toggle').on('click', function(event){
event.preventDefault();
var accordion = $(this);
var accordionContent = accordion.next('.accordion-content');
//var accordionToggleIcon = $(this).children('.toggle-icon');
accordion.toggleClass("open");
accordionContent.slideToggle(250);
/* i removed this (and var above) in favor of handling with css so less markup in editor
// change plus/minus icon
if (accordion.hasClass("open")) {
accordionToggleIcon.html("<span>-</span>");
} else {
accordionToggleIcon.html("<span>+</span>");
}
*/
});
});