GridTab jQuery Plugin
GridTab is a lightweight jQuery plugin to create grid based responsive tabs.
Demo
http://gopalraju.github.io/gridtab
Features
- Responsive
- Lightweight and based on CSS3 flexbox
- Set Grid for each breakpoint
- Switch between Grid and Tab layout
- Next, previous and close controls
- Scroll to current tab
- Custom selectors
- Right-To-Left Support
Package Managers
# Bower
bower install --save gridtab
# NPM
npm install gridtab
Usage
Setting up GridTab is really simple
HTML Markup
Your markup should look something like this
<dl id="gridtab-1">
<dt>Tab 1</dt>
<dd>Tab 1 Description</dd>
<dt>Tab 2</dt>
<dd>Tab 2 Description</dd>
<dt>Tab 3</dt>
<dd>Tab 3 Description</dd>
<dt>Tab 4</dt>
<dd>Tab 4 Description</dd>
<dt>Tab 5</dt>
<dd>Tab 5 Description</dd>
<dt>Tab 6</dt>
<dd>Tab 6 Description</dd>
</dl>
Where, <dt>
contains the title of the tab nad <dd>
contains the description to be shown on click.
Stylesheet
Just add a link to the css file in your :
<link rel="stylesheet" type="text/css" href="gridtab.min.css"/>
jQuery Plugin
Then, before your closing <body>
tag add:
<script type="text/javascript" src="gridtab.min.js"></script>
and initialize the plugin as shown below:
<script>
$(document).ready(function() {
$('#gridtab-1').gridtab({
grid:3
});
});
</script>
Where grid is the number of grids/tabs in a row
Settings
Basic Settings | Type | Default | Description |
---|---|---|---|
grid | integer | 4 |
Number of grids or tabs per row |
borderWidth | integer | 2 |
Width of the borders. |
tabBorderColor | string | '#ddd' |
border color of the tabs (Hex Color Code). |
tabPadding | integer | 25 |
padding/spacing around the tabs. |
contentBorderColor | string | '#ddd' |
border color of the content section (Hex Color Code). |
contentPadding | integer | 25 |
padding/spacing around content section. |
contentBackground | string | '#fff' |
Background color for the content section (Hex Color Code). |
activeTabBackground | string | '#fff' |
Background color for the active tab (Hex Color Code). |
responsive | Array | null |
Array of objects having breakpoints and settings object which is enabled at a given breakpoint . |
selectors | Object | see table below | Object with options to set custom selectors. |
config | Object | see table below | Object with options to enable features like, setting initially active tab, next/prev controls, close button, transition speed etc. |
callbacks | Object | open:false, close:false |
Callbacks for the open and close states of the content section. |
selectors | Type | Default | Description |
---|---|---|---|
tab | string | '> dt' |
By default, the click event is triggered on the entire tab ('dt' ). This can be replaced with any custom selector within the dt . For example: '.readmore' . |
closeButton | string | '.gridtab__close' |
Custom class for the close button, if 'showClose' is set to true . |
nextArrow | string | '.gridtab__next.gridtab__arrow' |
Custom class for the next button, if 'showArrows' is set to true . |
prevArrow | string | '.gridtab__prev.gridtab__arrow' |
Custom class for the prev button, if 'showArrows' is set to true . |
disabledArrow | string | '.is-disabled' |
Custom class for the disabled state of next/prev buttons, if 'showArrows' is set to true . |
config | Type | Default | Description |
---|---|---|---|
layout | string | 'grid' |
Change the value to 'tab' for a tab layout. By default, the layout is 'grid' based. |
keepOpen | Boolean | false |
If set to true keeps the active tab open (Disables toggle). |
speed | integer | 500 |
Transition speed in milliseconds. |
activeTab | integer | 0 |
Initially active tab. For example, 1 enables the first tab. |
showClose | Boolean | false |
Shows the close button if set to true . |
showArrows | Boolean | false |
Shows the next/prev buttons if set to true . |
scrollToTab | Boolean | false |
Scrolls to the active tab on click |
RTL | Boolean | false |
Converts tab to RTL |
Responsive Example
The responsive settings is where you reset the grids and other properties at a given breakpoint.
$('#gridtab-1').gridtab({
grid:5,
contentPadding: 40,
responsive:[{
breakpoint: 1024,
settings:{
grid:3,
contentPadding: 30
}
},{
breakpoint:767,
settings:{
grid:2,
contentPadding: 25
}
},{
breakpoint:520,
settings:{
grid:1,
contentPadding: 20
}
}]
});
All properties under basic settings like: borderWidth
, tabPadding
, tabBorderColor
, contentBorderColor
, contentPadding
, contentBackground
and activeTabBackground
, can be updated with the responsive settings.
Version
2.1.1
Browser support
GridTab works on IE10+ in addition to other modern browsers like Chrome, Firefox and Safari
Dependencies
jQuery 1.8.3 +
License
Licensed under the MIT license.