Library to create ordered/linked tabbed content in HTML.
This simple Javascript library has been created as a simple solution when you need to display tabbed content in the same order of a list. It is meant to speed up the html markup process and avoid list-content reference errors.
npm install -S otabs-js
bower install otabs-js
Simply include the js file (or minified js) in your html:
<script src="otabs.min.js"></script>
Place this JS line where you want oTabs to start working:
<script>
new oTabs().init();
</script>
In your html create a list with this template:
<ul class="otabs">
<li>..</li>
...
<li>..</li>
</ul>
And then use this template where you want your tabbed content to appear:
<div class="otabs_content">
<div>..</div>
...
<div>..</div>
</div>
NOTE: you can use whatever type of HTML tag for the content (div
is just an example)
If you're using this tool more than once in a page you'll need to bind each list with the appropriate tabbed content. You can simply do that using rel and id like this:
<ul class="otabs" rel="WHATEVER_YOU_WANT">
...
</ul>
...
<div class="otabs_content" id="WHATEVER_YOU_WANT">
...
</div>
You can select a specific tab using the data-select attribute. Examples:
<ul class="otabs" data-select="42">
Valid values (default is 0):
- a number between 0 to N
- last for the last tabbed item
You can reverse the display order of the content to be in the reversed order of the menu by using the reverse class like this:
<ul class="otabs reverse">
If you don't want oTabsJS to automatically bind each option with the corresponding content in order, you can manually bind them adding the link class to the menu and using rel and id:
<ul class="otabs link">
<li rel="content1">..</li>
<li rel="content2">..</li>
<li rel="content3">..</li>
</ul>
<div class="otabs_content">
<div id="content2">..</div>
<div id="content3">..</div>
<div id="content1">..</div>
</div>
<script>
var otabs = new oTabs().init();
// ... whatever ...
otabs.update();
</script>
To target this in your CSS you could use the .otabs
class for the menu and .otabs_content
for the area where the content displays.
The selected tab has the .active
class and you can simply target the other tabs with :not(.active)
.
If you want to build your own minified version of this library you can do that using npm and gulp.
Install the dependencies (you'll need npm
):
npm install
Execute gulp to generate the file otabs.min.js
(you'll need gulp
):
gulp
Simply add this line where you want otabs to start working:
<script>new oTabs().init();</script>
MIT License