1.0.7 • Published 4 years ago

react-native-card-flip v1.0.7

Weekly downloads
2,320
License
MIT
Repository
github
Last release
4 years ago

react-native-card-flip

Card flip animation for React Native

contributions welcome npm version

Installation

  npm install --save react-native-card-flip

Preview

App preview App preview2

import CardFlip from 'react-native-card-flip';
  <CardFlip style={styles.cardContainer} ref={(card) => this.card = card} >
    <TouchableOpacity style={styles.card} onPress={() => this.card.flip()} ><Text>AB</Text></TouchableOpacity>
    <TouchableOpacity style={styles.card} onPress={() => this.card.flip()} ><Text>CD</Text></TouchableOpacity>
  </CardFlip>

CardFlip

CardFlip props

Propstypedescriptionrequireddefault
styleobjectcontainer style{}
durationnumberflip duration1000
flipZoomnumberzoom level on flip0.09
flipDirectionstringthe rotation axis. 'x' or 'y''y'
perspectivenumber800

CardFlip events

Propstypedescription
onFlipfuncfunction to be called when a card is fliped. it receives the card-sides index
onFlipStartfuncfunction to be called when the flip-animation starts. it receives the card-sides index
onFlipEndfuncfunction to be called when the flip-animation ends. it receives the card-sides index

CardStack actions

Propstypedescriptionargsdefault
flipfuncFlips the card
tipfuncFlips the card{ direction, progress, duration }{ direction: 'left', progress: 0.05, duration: 150 }
jigglefuncJiggles the card{ count, duration, progress }{ count: 2, duration: 200, progress: 0.05 }

jiggle

App jiggle

<CardFlip style={styles.cardContainer} ref={(card) => this.card = card} >
  <TouchableOpacity style={styles.card} onPress={() => this.card.jiggle({ count: 2, duration: 100, progress: 0.05 })} ><Text>AB</Text></TouchableOpacity>
  <TouchableOpacity style={styles.card} onPress={() => this.card.flip()} ><Text>CD</Text></TouchableOpacity>
</CardFlip>

tip

App tip

<CardFlip style={styles.cardContainer} ref={(card) => this.card = card} >
  <TouchableOpacity style={styles.card} onPress={() => this.card.tip({ direction: 'right', duration: 150 })} ><Text>AB</Text></TouchableOpacity>
  <TouchableOpacity style={styles.card} onPress={() => this.card.flip()} ><Text>CD</Text></TouchableOpacity>
</CardFlip>

CardFlip in map

{cards.map((item, index) => {
  return (
    <CardFlip style={ styles.cardContainer } ref={ (card) => this['card' + index] = card } >
      <TouchableOpacity style={ styles.card } onPress={() => this['card' + index].flip()} ><Text>{item}</Text></TouchableOpacity>
      <TouchableOpacity style={ styles.card } onPress={() => this['card' + index].flip()} ><Text>{item}</Text></TouchableOpacity>
    </CardFlip>
  )
})}