- if you want ES5 support you have to use babel or browserify with babelify extension
- Nested tabs
- Lazy load
- No dependencies
- ES2015 support (use babel)
if you need IE9 support, it should work (i didn't test yet) with classList polyfill
npm i -S future-tabsbower i -S future-tabsgroup tabs with tabs block, internal structure does not matter
<divclass="tabs"><divclass="tabs__toggle tabs__toggle_active">tab 1</div><divclass="tabs__toggle">tab 2</div><divclass="tabs__tab">tab 1 content</div><divclass="tabs__tab">tab 2 content</div></div><divclass="tabs"><divclass="tabs__toggle tabs__toggle_active">tab 1</div><divclass="tabs__toggle">tab 2</div><divclass="tabs__tab">tab 1 content</div><divclass="tabs__tab" data-src="path/to/contentToBeLoaded">preloader</div></div>importinitTabsfrom'future-tabs';initTabs('.tabs');or
initTabs({selector: '.tabs',blockClassName: 'tabs'//optional})import{Tabs}from'future-tabs';consttabs=newTabs(document.querySelector('.tabs'));or
import{Tabs}from'future-tabs';consttabsDiv=document.getElementById('someCustomId');newTabs(tabsDiv,'tabs');// 'tabs' here is _bem block class nameconsttabs=newTabs(DOMElement);tabs.destroy();if you want to init again just do
tabs.init();If you don't use commonjs build system (like browserify or webpack) you should add this before script
<script>varmodule={exports: {}};varexports=module.exports;</script>gulp- tests
- add destroy method #5
- add nested tabs
- xhr error output to console
- add lazy load
- block class name (prefix) can be set
- you are welcome to use it and contribute