Professional Clean Tabbed Content In jQuery
File Size: | 5.91 KB |
---|---|
Views Total: | 790 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

A professional, clean, responsive tabbing system to switch between tabbed content by clicking/tapping on tabs. Written in jQuery and CSS/CSS3.
How to use it:
1. Add tabs and tabbed content to the tabbing system.
- .is-current: Set active tab on page load
- data-tab-list: Unique ID.
- data-tab-info: Tab info
<div class="tab"> <!-- Tabs --> <div class="tab__button"> <ul class="list"> <li class="js-tab-trigger item is-current" data-tab-list="tabGroup1" data-tab-info="tab01"> <button class="button" type="button">Tab 1</button> </li> <li class="js-tab-trigger item" data-tab-list="tabGroup1" data-tab-info="tab02"> <button class="button" type="button">Tab 2</button> </li> <li class="js-tab-trigger item" data-tab-list="tabGroup1" data-tab-info="tab03"> <button class="button" type="button">Tab 3</button> </li> </ul> </div> <!-- Tab Content --> <div class="tab__content"> <div class="js-tab-content content is-current" data-tab-list="tabGroup1" data-tab-info="tab01"> <h2 class="title">Tab 1</h2> <div class="box"> <div class="imageWrap"><img class="image" src="1.jpg" alt="image alt"></div> <p class="text">Tab 1 Content</p> </div> </div> <div class="js-tab-content content" style="display: none;" data-tab-list="tabGroup1" data-tab-info="tab02"> <<h2 class="title">Tab 2</h2> <div class="box"> <div class="imageWrap"><img class="image" src="2.jpg" alt="image alt"></div> <p class="text">Tab 2 Content</p> </div> </div> <div class="js-tab-content content" style="display: none;" data-tab-list="tabGroup1" data-tab-info="tab03"> <h2 class="title">Tab 3</h2> <div class="box"> <div class="imageWrap"><img class="image" src="3.jpg" alt="image alt"></div> <p class="text">Tab 3 Content</p> </div> </div> </div> </div>
2. The necessary CSS styles for the tabbing system.
/* Tab Button */ .tab__button { height: 50px; } .list { display: flex; list-style: none; height: 100%; } .item { width: 100%; border: 0; border-left: 1px solid #ddd; height: 100%; } .button { cursor: pointer; appearance: none; border-radius: 0; border-style: none; width: 100%; height: 100%; border-bottom: 2px solid transparent; transition: all .25s ease-in-out; } .button:hover { font-weight: bold; border-bottom: 2px solid #31a0ca; } .button:focus { outline: none; } .is-current .button { color: #fff; background: #0b60b7; } .is-current .button:hover { border-bottom: 2px solid transparent; } /* Tab Content */ .title { font-size: 25px; margin: 10px auto 20px; } .title:first-letter { font-size: 40px; color: #f00; } .box { display: flex; } @media screen and (max-width:767px) { .box { flex-direction: column; padding: 20px; } }
3. Optional styles for tabbed content.
.text { width: 70%; font-size: 16px; line-height: 1.5; text-align: left; margin: 20px 0 20px 20px; } @media screen and (max-width:767px) { .text { width: 100%; margin: 20px auto; } } .imageWrap { width: 30%; } @media screen and (max-width:767px) { .imageWrap { width: 100%; } } .image { width: 100%; box-shadow: 10px 10px 10px rgba(0,0,0,0.4); }
4. The JavaScript (jQuery script) to enable the tabbing system. Copy the snippets as displayed below and insert them after jQuery library.
$(function() { // Tabs var $tabTrigger = $('.js-tab-trigger'); // Tabbed content var $tabContent = $('.js-tab-content'); // Switch between tabbed content $tabTrigger.on('click', function(event) { // Prevent default click event event.preventDefault(); // Get clicked tab element and data attribute var $target = $(event.currentTarget); var $list = $target.data('tab-list'); var $info = $target.data('tab-info'); // Update the selected tab $tabTrigger .filter('[data-tab-list="' + $list + '"]') .removeClass('is-current') .filter('[data-tab-info="' + $info + '"]') .addClass('is-current'); // Update the selected content $tabContent .filter('[data-tab-list="' + $list + '"]') .removeClass('is-current') .hide() .filter('[data-tab-info="' + $info + '"]') .addClass('is-current') .show(); }); });
This awesome jQuery plugin is developed by it-web-life. For more Advanced Usages, please check the demo page or visit the official website.