Smooth Accordion Plugin with jQuery and CSS3 Transforms
| File Size: | 3.2 KB |
|---|---|
| Views Total: | 2835 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
A stylish accordion jQuery plugin that allows you to expand/collapse stacked content areas with a smooth CSS3 transform based sliding effect by clicking the accordion headers.
How to use it:
1. Place the necessary jQuery javascript library at the end of the document.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
2. Create an accordion structure using dl dt dd elements.
<dl class="accordion"> <dt>Panel 1</dt> <dd>Content 1</dd> <dt>Panel 2</dt> <dd>Content 2</dd> <dt>Panel 3</dt> <dd>Content 3</dd> </dl>
3. The required CSS styles for the accordion.
.accordion {
margin: 0 0 30px;
border-top: 1px solid #DDD;
border-radius: 4px;
}
.accordion dt {
border-bottom: 3px solid #f1f2f3;
background: #1abc9c;
color: #FFF;
}
.accordion dd {
display: none;
padding: 20px;
width: 100%;
margin-left: 0;
border-bottom: 1px solid #DDD;
background: #FFF;
}
.accordion dt {
cursor: pointer;
padding: 8px 15px;
margin: 0;
}
.accordion dt:before {
content: "\25B6";
padding-right: 5px;
transition: all .3s linear;
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
transform: rotate(0deg);
}
.accordion dt:hover:before {
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
transform: rotate(90deg);
}
.accordion dt.accordion-active:before {
content: "\25B6";
padding-right: 5px;
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
}
.accordion dt.accordion-active:hover {
cursor: default;
}
4. Add the following Javascript snippet after jQuery library but before closing body tag.
<script>
(function($) {
var allPanels = $('.accordion > dd').hide();
$('.accordion > dd:first-of-type').show();
$('.accordion > dt:first-of-type').addClass('accordion-active');
jQuery('.accordion > dt').on('click', function() {
$this = $(this);
$target = $this.next();
if(!$this.hasClass('accordion-active')){
$this.parent().children('dd').slideUp();
jQuery('.accordion > dt').removeClass('accordion-active');
$this.addClass('accordion-active');
$target.addClass('active').slideDown();
}
return false;
});
})(jQuery);
</script>
This awesome jQuery plugin is developed by DavieB. For more Advanced Usages, please check the demo page or visit the official website.






