1.0.2 • Published 2 years ago

tab-switch-react v1.0.2

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

描述

基于 react 的类似选择器视图,tabSwitch 和 tabSwitchPage 可以组合使用联动效果,又类似轮播

效果如图

效果如图

安装

npm install tab-switch-react --save

引入方式

import { TabSwitch, TabSwitchPage } from 'tab-switch-react'; // 项目没有用TS,可以这样引入;
const { TabSwitch, TabSwitchPage } = require('tab-switch-react'); // 项目中使用了TS,可以这样引入;

使用方法

数据格式规定如下:

  const dataList1 = [
    {
      key: 0,
      content: <div>我们</div>,
    },
    {
      key: 1,
      content: (
        <div>
          <div>是否</div>
        </div>
      ),
    },
    {
      key: 2,
      content: '可以',
    },
    {
      key: 3,
      content: '携手',
    },
    {
      key: 4,
      content: '共进',
    },
  ];
  const dataList = [
    {
      key: 0,
      content: <div>我们一起</div>,
    },
    {
      key: 1,
      content: (
        <div>
          <div>看日出</div>
          <div>看日落</div>
        </div>
      ),
    },
    {
      key: 2,
      content: '每天睁开眼第一看到就是你',
    },
    {
      key: 3,
      content: '无论吃饭早与晚都有你陪伴',
    },
    {
      key: 4,
      content: '幸福生活',
    },
  ];
const [setSelectedKey, setSetSelectedKey] = useState(2);
const selectedKey = (state) => {
  const { e, key, value } = state;
  console.log(state, e, key, value);
  setSetSelectedKey(key);
};

return (
  <div
    style={{
      width: '100%',
      height: '100%',
      // position: 'fixed',
      // top: '0',
      // left: '0',
      background: '#fff',
      zIndex: 1000000000,
    }}
  >
    <div
      style={{
        width: '100%',
        height: '50%',
        background: '#fff',
        zIndex: 1000000000,
      }}
    >
      <TabSwitch
        defaults={2} // 设置默认高亮;如果与<TabSwitchTabs/>一起使用默认值要与<TabSwitchTabs/>的setSelectedKey值相等
        dataList={dataList1} // 数据[]SwitchContent
        selectedKey={selectedKey} // 回调函数返回当前高亮数据;动态控制高亮回调无效:() => {}
        inclination={10} // 设置向右侧偏移度可更改 number 开启覆盖默认
        styles={{ overflow: '', color: '#ff7a59' }} // 溢出内容是否遮盖或其他样式设置,hidden
        itemHeight={20} // 设置高亮区域高度 开启覆盖默认
        borderColor={'1px solid #ff7a59'} // 设置高亮区域边框,动态控制高亮的时候不生效;
        blurLayer={false} // 未高亮的每项是否渐变模糊默认开启,false关闭;白色背景可以使用;blurLayer和transparency选一
        transparency={0.4} // 未高亮的每项是否渐变模糊默认开启,其他背景使用;blurLayer和transparency选一 范围(0.1-1)
      />
    </div>
    <div
      style={{
        width: '100%',
        height: '50%',
        background: '#fff',
        zIndex: 1000000000,
      }}
    >
      <TabSwitchTabs
        dataList={dataList} // 数据[]SwitchContent
        inclination={0} // 设置向右侧偏移度可更改 number 开启覆盖默认
        styles={{ overflow: '' }} // 溢出内容是否遮盖或其他样式设置,hidden
        itemHeight={40} // 设置高亮区域高度 开启覆盖默认
        borderColor={'1px solid #ff7a59'} // 设置高亮区域边框,动态控制高亮的时候不生效;
        setSelectedKey={setSelectedKey} // 动态控制高亮
        gradientSpeed={0.03} // 控制渐变速度需要和动态控制高亮一起用生效;
        alignItems // flex属性内容默认左右居中,string: flex-start,flex-end
      />
    </div>
  </div>
);