react-native-reactive-banner
v1.0.1
Published
Simple, lightweight banner wrapper that responds to scroll.
Downloads
6
Maintainers
Readme
Reactive Banner for React Native
Lightweight (apx. 1kb) 🤏
Simple with no dependencies 😎
Runs animations in native thread 🏎
I needed something nicer and catchier than what ads providers show in my app. Voilà!
Installation
yarn add react-native-reactive-banner
Usage
Basics
import ReactiveBanner from 'react-native-reactive-banner'
...
return (
<ReactiveBanner scrollRef={scrollRef} scrollOffset={scrollOffset}>
your content here
</ReactiveBanner>
);
Full
Example below highlights crucial bits for best performance:
- Using
Animated
component for scroll (Animated.ScrollView
in this case); - passing
Animated.Event
toonScroll
handler; - linking current scroll offset with
scrollOffset
animated value; - setting
useNativeDriver
totrue
; - passing
scrollRef
andscrollOffset
toReactiveBanner
.
import React, { useRef } from 'react'
import { Animated } from 'react-native'
import ReactiveBanner from 'react-native-reactive-banner'
const Example = () => {
const scrollRef = useRef(null);
const scrollOffset = new Animated.Value(0);
return (
<Animated.ScrollView
ref={scrollRef}
onScroll={Animated.event(
[{ nativeEvent: { contentOffset: { y: scrollOffset } } }],
{ useNativeDriver: true }
)}
>
<ReactiveBanner scrollRef={scrollRef} scrollOffset={scrollOffset}>
your content here
</ReactiveBanner>
</Animated.ScrollView>
);
}
export default Example
Params
| Params | Required | Description | Default |
| --------------------- |:-------------:| ------------ | ------------ |
| scrollRef
| true
| Reference pointer to parent scroll component. ||
| scrollOffset
| true
|Current scroll offset provided as Animated.Value
.||
| height
| false
|Banner height (in px
)| Window height divided by 5. |