1.0.4 • Published 7 years ago

silk-tabs v1.0.4

Weekly downloads
8
License
MIT
Repository
github
Last release
7 years ago

Introduce

Tabs component of React,designed for mobile.Support gestures and lots of tabs.

正式版,已在大型商业项目中使用,有问题提issue,永久更新.

demo

Installation

$ npm install silk-tabs --save

How To Use

import React from 'react';
import ReactDOM from 'react-dom';
import Tabs from 'silk-tabs';

import 'silk-tabs/style/Tabs.css';

const numberOfTabs = 8;
const tabs = [...new Array(numberOfTabs)].map((_, i) => `tab${i}`);

const Panels = [...new Array(numberOfTabs)].map((_, i) =>
    (
        <div key={i}>
            <div className="myItem">{i}</div>
        </div>
    )
);

const tabPanelStyle = {
    container: {
        overflow: 'hidden',
        visibility: 'hidden',
        position: 'relative'
    },
    wrapper: {
        overflow: 'hidden',
        position: 'relative'
    },
    child: {
        float: 'left',
        width: '100%',
        position: 'relative',
        transitionProperty: 'transform',
        height: '250px'
    }
}

const onChange = index => {
    // Don't do costing things.
    // Meybe you should not use this api,use transitionEnd instead.

    console.log(`onChange:${index}`)
}
const transitionEnd = index => {
    // You may do some costing things here instead of in onChange callback for better performance!

    // fetch()
    // render()

    console.log(`transitionEnd:${index}`)
}

const TabsExample = () => (
    <div>
        <Tabs
            defaultIndex={2}
            onChange={onChange}
            transitionEnd={transitionEnd}
            tabs={tabs}
            tabPanelStyle={tabPanelStyle}
            className="myTabs"
        >
            {Panels}
        </Tabs>
    </div>
)

API

Tabs

Props

PropertyDescriptionTypeDefault
classNameclassName of containerString
defaultIndexdefault index position of tabsNumber0
onChangeruns at tab changeFunction
transitionEndruns at the end slide transitionFunction
tabscontents of tabsArrayReact.node
containerStylestyle of container
tabStylestyle of tabs,useful when tabs fixed top
tabPanelStylestyle of TabPanels

tabPanelStyle defaults

    style: {
      container: {
        overflow: 'hidden',
        visibility: 'hidden',
        position: 'relative'
      },

      wrapper: {
        overflow: 'hidden',
        position: 'relative'
      },

      child: {
        float: 'left',
        width: '100%',
        position: 'relative',
        transitionProperty: 'transform'
      }

Tabs.css is styled by px,you can change to rem if needed,for example:

.silk-tabs-nav-scroller .silk-tabs-tab {
    display: inline-block;
    padding: 0 .3rem;
    font-size: 15px;
    height: .88rem;
    line-height: .88rem;
}
1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago