Introduction
The tabs structure consists of an unordered list of tabs that have hashes corresponding to tab ids. Then when you click on each tab, only the container with the corresponding tab id will become visible. You can add the class .disabled
to make a tab inaccessible.
Variable Width TabsDefault
Test 1
Test 2
Test 3
Test 4
Fixed Width TabsAdd the .tabs-fixed-width
class
Test 1
Test 2
Test 3
Test 4
Test 5
Scrollable Tabs Tabs automatically become scrollable
Test 5
Test 6
Test 7
Test 8
Test 9
Test 10
Test 11
Test 12
Test 13
Test 14
Test 15
Tabs HTML Structure
<div class="row">
<div class="col s12">
<ul class="tabs">
<li class="tab col s3"><a href="#test1">Test 1</a></li>
<li class="tab col s3"><a class="active" href="#test2">Test 2</a></li>
<li class="tab col s3 disabled"><a href="#test3">Disabled Tab</a></li>
<li class="tab col s3"><a href="#test4">Test 4</a></li>
</ul>
</div>
<div id="test1" class="col s12">Test 1</div>
<div id="test2" class="col s12">Test 2</div>
<div id="test3" class="col s12">Test 3</div>
<div id="test4" class="col s12">Test 4</div>
</div>
jQuery Plugin Initialization
Tabs are initialized automatically, but if you add tabs dynamically you will have to initialize them like this.
$(document).ready(function(){
$('ul.tabs').tabs();
});
jQuery Plugin Methods
You can programmatically trigger a tab change with our select_tab
method. You have to input the id of the tab you want to switch to. In the case of our demo it would be either test1, test2, test3, or test4.
$(document).ready(function(){
$('ul.tabs').tabs('select_tab', 'tab_id');
});
jQuery Plugin Options
Option Name | Description |
---|---|
onShow | Execute a callback function when the tab is changed. The callback provides a parameter which refers to the current tab being shown. |
swipeable | Set to true to enable swipeable tabs. This also uses the responsiveThreshold option. Default: false |
responsiveThreshold | The maximum width of the screen, in pixels, where the swipeable functionality initializes. Default: Infinity |
Preselecting a tab
By default, the first tab is selected. But if this is not what you want, you can preselect a tab by either passing in the hash in the url ex:#test2
. Or you can add the class active
to the a
tag.
<li class="tab col s2"><a class="active" href="#test3">Test 3</a></li>
Linking to an External Page
By default, Materialize tabs will ignore their default anchor behaviour. To force a tab to behave as a regular hyperlink, just specify the target
property of that link! A list of target
values may be found here.
<li class="tab col s2">
<a target="_blank" href="https://github.com/Dogfalo/materialize">External link in new window</a>
</li>
<li class="tab col s2">
<a target="_self" href="https://github.com/Dogfalo/materialize">External link in same window</a>
</li>
Swipeable Tabs
By setting the swipeable
option to true
, you can enable tabs where you can swipe on touch enabled devices to switch tabs. Make sure you keep the tab content divs in the same wrapping container. You can also set the responsiveThreshold
option to a screen width in pixels where the swipeable functionality will activate.
Note: This is also touch compatible! Try swiping with your finger to scroll through the carousel.
<ul id="tabs-swipe-demo" class="tabs">
<li class="tab col s3"><a href="#test-swipe-1">Test 1</a></li>
<li class="tab col s3"><a class="active" href="#test-swipe-2">Test 2</a></li>
<li class="tab col s3"><a href="#test-swipe-3">Test 3</a></li>
</ul>
<div id="test-swipe-1" class="col s12 blue">Test 1</div>
<div id="test-swipe-2" class="col s12 red">Test 2</div>
<div id="test-swipe-3" class="col s12 green">Test 3</div>