29

Modern Tabbing System In Vanilla JavaScript – Tabby

 5 years ago
source link: https://www.tuicool.com/articles/hit/R73AJjA
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Demo Download

Author: janmarkuslanger Views Total: 219 Official Page: Go to website Last Update: November 18, 2018 License: MIT

Preview:

Av6rq2u.png!web

Description:

Tabby is an ultra-light, pretty simple tabbing system written in pure vanilla JavaScript (ES6).

Comes with lots of callback functions which enables you to do some cool stuff when switching between tabs.

How to use it:

Insert the compiled version of the Tabby library into the document.

<link rel="stylesheet" href="dist/tabby.css">
<script src="dist/tabby.js"></script>

Create the tabs & tabbed content using the following data attributes:

  • data-tabby-bar: unique name.
  • data-tabby-content: must match the  data-tabby-bar attribute.
  • data-tabby-active: active tab
<div class="tabs">
  <div class="bar">
    <div data-tabby-bar="1" data-tabby-active>Tab 1</div>
    <div data-tabby-bar="car">Tab 2</div>
    <div data-tabby-bar="3">Tab 3</div>
  </div>
  <div class="content">
    <div data-tabby-content="1" data-tabby-active>Tab 1 Content</div>
    <div data-tabby-content="demo">Tab 2 Content</div>
    <div data-tabby-content="3">Tab 3 Content</div>
  </div>
</div>

Initialize the Tabby.

const myTab = new Tabby.Component(document.querySelector('.tabs'));

Apply custom styles to the tabs.

.tabs {
  width: 100%;
  max-width: 400px;
  margin: 0 auto;
  border-radius: .25rem;
  overflow: hidden;
  background-color: rgba(0, 0, 0, .1);
}

.tabs .bar {
  width: 100%;
  display: flex;
}

.tabs [data-tabby-bar]:first-child {
  border-left: none;
}

.tabs [data-tabby-bar] {
  padding: 1.25rem;
  text-align: center;
  cursor: pointer;
  border-left: .0625rem solid rgba(0, 0, 0, .4);
  flex: 1;
  background-color: rgba(0, 0, 0, .3);
}

.tabs [data-tabby-content] {
  padding: 1.25rem;
}

All possible callback functions.

const myTab = new Tabby.Component(document.querySelector('.tabs'),{
      onConstruct: function(tab) {
        // do something
      },
      onBeforeKilltabs: function(tab, activeBarElement, activeContentElement) {
        // do something
      },
      onAfterKilltabs: function(tab, activeBarElement, activeContentElement) {
        // do something
      },
      onBeforeShowtab: function(tab, activeBarElement, activeContentElement) {
        // do something
      },
      onAfterShowtabs: function(tab, activeBarElement, activeContentElement) {
        // do something
      },
      onBeforeInit: function(tab) {
        // do something
      },
      onAfterInit: function(tab) {
        // do something
      }
});

Changelog:

11/18/2018

  • v2.0.2

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK