0.0.7 • Published 4 years ago
react-moving-text v0.0.7
react-moving-text
React Component to show animated text and objects, built with styled-components.
The Component provides regular animation for common object and some animation effects especially for typography like letters and multi-line text.
View Demo and Playground
Installation
Install via npm:
npm i react-moving-text
Usage
To use react-moving-text in your react project, wrap the content with a MovingText
component and customize the animation with relevant properties.
import React from 'react'
import MovingText from 'react-moving-text'
const MyAnimatedTypo = () => {
return (
<MovingText
type="animation_type"
duration="1000ms"
delay="0s"
direction="normal"
timing="ease"
iteration="infinite"
fillMode="none">
Content...
</MovingText>
)
}
Available properties
Property | Corresponding Animation Property | Data Type | Default Value | Property Unit |
---|---|---|---|---|
type | animation-name | String | "blur" | - |
duration | animation-duration | String | "1s" | s or ms |
delay | animation-delay | String | "0s" | s or ms |
direction | animation-direction | String | "alternate" | - |
timing | animation-timing-function | String | "ease" | - |
iteration | animation-iteration-count | Number String | "infinite" | - |
fillMode | animation-fill-mode | String | "none" | - |
Available animations
type / Animation name |
---|
blur |
fadeIn |
fadeOut |
hang |
hangOnLeft |
hangOnRight |
swing |
glowing |
shakeMix |
shakeHorizontal |
shakeVertical |
spin |
bounce |
flipCenterToRight |
flipFromLeftToCenter |
flash |
pulse |
jelly |
squeezeHorizontal |
squeezeVertical |
flipHorizontal |
flipVertical |
Chain Animation
An string-arry of animation names is used to wrap the animations you want to chain.
import React, { useState } from 'react'
import MovingText from 'react-moving-text'
const AnimationsForChaining = ["swing", "flipSlowDown", "fadeOutToBottom", "jelly"]
const AnimationChain = () => {
const [ animationIndex, setAnimationIndex ] = useState(0)
const [ animationType, setAnimationType ] = useState(AnimationsForChaining[0])
const handleChainAnimation = () => {
setCounter(animationIndex+1)
setAnimationType(selectedItems[animationIndex+1])
}
return (
<MovingText
onAnimationEnd={handleChainAnimation}
type={animationType}
duration="1000ms"
timing="linear"
iteration={1}>
MovingText
</MovingText>
)
}