1.0.1 • Published 2 years ago
tabs-more-button v1.0.1
tabs-more-button
Responsive Tabs with more button
Making tabs responsive by hiding overflow tabs except active tab
Features
VerticalsupportrtlsupportFlexible style
High performance
Installation
$ npm install tabs-more-button --save
or
$ yarn add tabs-more-button
If you need to directly include script in your html, use the following links :
<script src="https://unpkg.com/tabs-more-button@latest/dist/tabs-more-button.min.js"></script>Minimal Usage
html :
<div id="container">
<ul id="tablist" style="display:inline-flex;">
<li>Tab 0</li>
<li>Tab 1</li>
<li>Tab 2</li>
<li>Tab 3</li>
<li style="color:red;">Active Tab 4</li>
<li>Tab 5</li>
<li>Tab 6</li>
</ul>
<button id="view-more-button">more</button>
</div>js :
import tabsMoreButton from 'tabs-more-button';
const options = {
buttonElement: document.getElementById('view-more-button'),
containerElement: document.getElementById('container'),
tablistElement: document.getElementById('tablist'),
};
const instance = new tabsMoreButton(options);
let hiddenTabs = instance.resize(4 /*selectedTabIndex*/);
addEventListener('resize', () => {
hiddenTabs = instance.resize(4 /*selectedTabIndex*/);
});
document.getElementById('view-more-button').addEventListener('click', () => console.table(hiddenTabs));Rules
view morebutton should be sibling element ofTablistelementtabsandview morebutton should be kept on same lineShould not be any gap between
view morebutton andTablist
options
buttonElement
- type :
HtmlELement - description :
view morebutton (should be sibling element ofTablistelement)
- type :
containerElement
- type :
HtmlELement - description : the first ancestor of
view morebutton which itswidth|heightis not relative toTablistelement but is relative toviewport
- type :
tablistElement
- type :
HtmlELement - description : the
Tablistelement
- type :
tabDisplay?
- type :
string - description :
displayvalue for eachtabelement - default value :
inline-flex
- type :
containerDisplay?
- type :
string - description :
displayvalue forcontainerElement - default value :
flex
- type :
instance methods
resize
- type :
function - description : makes tabs responsive by hiding
overflow tabsexceptactive tab - arguments :
- selectedTabIndex :
- type :
Number - description : index of active tab element in the tablist element
- type :
- direction? :
- type :
"ltr" | "rtl" - description : direction value of
tablistelement - default value :
"ltr"
- type :
- isVertical? :
- type :
Boolean - description :
truemeanstablistelement is vertical - default value :
false
- type :
- selectedTabIndex :
- return :
- type :
Array<{ el: HTMLElement, index: Number }> - description : array of hidden tabs data
- type :
- type :
Test
$ npm run test
License
MIT
