react-native-marquee-easy

1.0.6 • Public • Published

使用react native实现一个跨端的跑马灯轮播组件。

效果如图

swipe.gif

normal.gif

例子

配置

type IProps = {
    direction?: 'horizontal' | 'vertical';
    delay?: number;
    iterations?: number;
    itemDurations?: number;
    containerStyle?: ViewStyle;
    onFinished?: () => void;
    children: any;
    type?: 'swipe' | 'normal';
    swiperItemDurations?: number;
};

demo

import {Marquee} from 'react-native-marquee-easy'
<Marquee
        itemDurations={2000}
        containerStyle={styles.cStyle}
        iterations={count}
        onFinished={() => {
          console.log("test finished ani");
        }}
      >
        <View style={{ backgroundColor: "green" }}>
          <Text style={styles.text}>aaaaa</Text>
        </View>

        <View style={styles.item}>
          <Text style={styles.text}>bbbbbbb</Text>
        </View>
        <View style={{ backgroundColor: "pink" }}>
          <Text style={styles.text}>cccccccccc</Text>
        </View>
      </Marquee>

功能

使用简单 纯js实现不依赖任何第三方库
支持水平垂直两个方向
支持文字&view
两种模式

  1. type=normal 连续不间断滚动
  2. type=swipe 停顿式轮播滚动

原理

  1. 加入输入的内容是【item1, item2, item3】
  2. 首先会在最后一个item后面 再添加一个重复的item1视图变为【item1,item2,item3,item1】
  3. 一次如图滚动 截屏2024-01-22 下午3.13.58.png

截屏2024-01-22 下午3.14.54.png

截屏2024-01-22 下午3.15.05.png

截屏2024-01-22 下午3.15.39.png 4. 当滚动到最后一项时 再将动画重置为初始状态 因为第一项和最后一项相同 所以视图不会刷新 实现无限滚动。

代码仓库

github:react-native-marquee-easy

npm:react-native-marquee-easy

/react-native-marquee-easy/

    Package Sidebar

    Install

    npm i react-native-marquee-easy

    Weekly Downloads

    0

    Version

    1.0.6

    License

    MIT

    Unpacked Size

    13.7 kB

    Total Files

    7

    Last publish

    Collaborators

    • wuyunqiang