Animated Semantic Tab Control with jQuery and CSS3
File Size: | 2.02 KB |
---|---|
Views Total: | 2001 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |
A little jQuery script to create vertical or horizontal tabbed panels with fancy CSS3 animations and semantic markup.
How to use it:
1. Create tabbed panels from any sensible markup you like.
<dl class="tabs"> <dt class="tabs__item tabs__item--active">Tab 1</dt> <dd class="tabs__body"> <div class="tabs__content">Content 1</div> </dd> <dt class="tabs__item">Tab 2</dt> <dd class="tabs__body"> <div class="tabs__content">Content 2</div> </dd> <dt class="tabs__item">Tab 3</dt> <dd class="tabs__body"> <div class="tabs__content">Content 3</div> </dd> </dl>
2. The required CSS to style the tabbed panels.
.tabs { position: relative; margin-bottom: 24px; height: 300px; } .tabs__item { position: relative; display: inline-block; z-index: 20; line-height: 2.5; margin-right: -0.28em; padding-left: 12px; padding-right: 12px; color: white; box-shadow: inset 0 50px #9b59b6; background-color: #ecf0f1; transition: box-shadow 0.35s ease-out, color 0.4s ease-out; cursor: pointer; } .tabs__item:hover { box-shadow: inset 0 50px #ac75c2; } .tabs__item:first-child { margin-left: 12px; } .tabs__item--active { color: #9b59b6; box-shadow: inset 0 0 #9b59b6 !important; } .tabs__item--active + .tabs__body { z-index: 10; } .tabs__body { position: absolute; overflow: hidden; left: 0; right: 0; height: 200px; margin-left: 0; padding: 24px; border-radius: 4px; border-bottom: 2px solid #cfd9db; background-color: #ecf0f1; transition: all 0.25s; } .tabs__content { opacity: 1; transition: all 0.15s ease-out; } .tabs__content--hidden { opacity: 0; transform: translate(0, 8px); }
3. Include the latest version of jQuery library at the bottom of your document body.
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
4. The Javascript to active the tab control.
$(".tabs").each(function() { var $tabs = $(this), $tabItem = $tabs.children(".tabs__item"), $tabBody = $tabs.children(".tabs__body"), $tabContent = $tabBody.children(".tabs__content"); $tabItem.click(function() { var $currentTab = $(this); $tabContent.addClass("tabs__content--hidden"); $tabItem.removeClass("tabs__item--active"); setTimeout(function() { $currentTab.addClass("tabs__item--active"); }, 200); setTimeout(function() { $tabContent.removeClass("tabs__content--hidden"); }, 500); }); });
This awesome jQuery plugin is developed by keithpickering. For more Advanced Usages, please check the demo page or visit the official website.