All Projects → hamidhadi → React Native Stretchy

hamidhadi / React Native Stretchy

Licence: mit
🤸‍♀️A ReactNative scrollable stretchy header component

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to React Native Stretchy

Rnparallax
A react native scroll view component with Parallax header :p
Stars: ✭ 474 (+119.44%)
Mutual labels:  parallax, header
Sticky Parallax Header
A simple React Native library, enabling to create a fully custom header for your iOS and Android apps.
Stars: ✭ 792 (+266.67%)
Mutual labels:  parallax, header
React Native Parallax Scroll
Parallax scroll view for react-native
Stars: ✭ 385 (+78.24%)
Mutual labels:  scroll, parallax
React Native Swiper Flatlist
👆 Swiper component implemented with FlatList using Hooks & Typescript + strict automation tests with Detox
Stars: ✭ 217 (+0.46%)
Mutual labels:  expo, scroll
Rolly
Custom scroll with inertia, smooth parallax and scenes manager
Stars: ✭ 109 (-49.54%)
Mutual labels:  scroll, parallax
Lax.js
Simple & lightweight (<4kb gzipped) vanilla JavaScript library to create smooth & beautiful animations when you scroll.
Stars: ✭ 8,274 (+3730.56%)
Mutual labels:  scroll, parallax
Motus
Animation library that mimics CSS keyframes when scrolling.
Stars: ✭ 502 (+132.41%)
Mutual labels:  scroll, parallax
React Lazy Hero
⚡️ A hero component for React
Stars: ✭ 134 (-37.96%)
Mutual labels:  parallax, header
Materialviewpager
A Material Design ViewPager easy to use library
Stars: ✭ 8,224 (+3707.41%)
Mutual labels:  scroll, parallax
Simpleparallax.js
Simple and tiny JavaScript library that adds parallax animations on any images
Stars: ✭ 1,075 (+397.69%)
Mutual labels:  scroll, parallax
React Scroll Parallax
🔮 React components to create parallax scroll effects for banners, images or any other DOM elements
Stars: ✭ 1,699 (+686.57%)
Mutual labels:  scroll, parallax
Vue Prlx
🔮 Vue.js parallax directive you were looking for (can animate translate & background-position)
Stars: ✭ 140 (-35.19%)
Mutual labels:  scroll, parallax
React Indiana Drag Scroll
React component which implements scrolling via holding the mouse button or touch
Stars: ✭ 190 (-12.04%)
Mutual labels:  scroll
Expo
An open-source platform for making universal native apps with React. Expo runs on Android, iOS, and the web.
Stars: ✭ 15,550 (+7099.07%)
Mutual labels:  expo
Expo Uber
Uber UI Clone with React Native & Expo
Stars: ✭ 186 (-13.89%)
Mutual labels:  expo
Scroll Snap
↯ Snap page when user stops scrolling, with a customizable configuration and a consistent cross browser behaviour
Stars: ✭ 187 (-13.43%)
Mutual labels:  scroll
Margarita
[not actively maintained] Mobile and Web application implementing Kiwi.com Tequila API
Stars: ✭ 213 (-1.39%)
Mutual labels:  expo
Rn Wunderlist
Wunderlist Clone written in React Native
Stars: ✭ 201 (-6.94%)
Mutual labels:  expo
Infinitescroll
Infinite Scroll (Endless Scrolling) for RecyclerView in Android
Stars: ✭ 183 (-15.28%)
Mutual labels:  scroll
React Remove Scroll
Removes and disables 📜in a "React" way
Stars: ✭ 182 (-15.74%)
Mutual labels:  scroll

react-native-stretchy 🤸‍♀️

A ReactNative Scrollable Stretchy Header Component.

✅ Fully optimized for lists
✅ Fully TypeScript support
✅ Use native animation
✅ Expo Support

StretchyBatman

🧐 Installation

npm install react-native-stretchy --save

🎓 Basic Usage

import React, { Component } from 'react';
import { Text, View } from 'react-native';
import { StretchyScrollView } from 'react-native-stretchy';

class SystretchyScrollView extends Component {
  render() {
    return (
      <StretchyScrollView
        image={{ uri: 'https://example.com/myImageAddress' }}
        onScroll={(position, reachedToTheBottomOfHeader) =>
          console.log(position, reachedToTheBottomOfHeader)
        }>
        <Text>Foo</Text>
        <Text>Bar</Text>
      </StretchyScrollView>
    );
  }
}

ℹ️ Properties

These are default properties for all stretchy components

Prop Default Description
backgroundColor #FFF Background color of the inner content
image null The image of the stretchy header (RN image source)
imageHeight null Height of the stretchy header image (keep ratio of image if not provided)
imageResizeMode 'cover' ResizeMode of the stretchy header image. You can use one of these values
imageOverlay null A RN Component for image overlay
foreground null A RN Component for foreground content of background
onScroll null A callback function with these arguments:
position: current position of scroll
reachedToTheBottomOfHeader: boolean flag to specify whether the scroll has reached to the bottom of header or not

💁‍♂️ Components

<StretchyScrollView />

Simple ScrollView with stretchy header support.

<StretchyFlatList />

React-Native FlatList component with stretchy header support.

<StretchySectionList />

React-Native SectionList component with stretchy header support.

NOTE:

  1. In addition to the default stretchy props, you can use all available props for ScrollView, FlatList and SectionList.
  2. You can find all available components usage in example project.

🎮 Run Example Project

To see all components in action you can run the Example project by following these steps:

  1. Clone the project
  2. Install node modules by running npm i or yarn at the root of project
  3. Run npm run watch or yarn watch to compile and watch source files
  4. Run npm run start or yarn start to start the RN packager and keep it open
  5. Open example.xcworkspace from /example/ios and run the project from XCode

NOTE: I changed the location of iOS and Android directories and even after specifying new locations on react-native.config we can't run the example project via RN cli. See this issue

🧩 Contribution

I'm still trying to improve the codebase of this package so if you have any idea in terms of the structure, features or anything else, please let me know by whether sending a PR or open an issue and start a discuession. I really appreciate that. 😉

👮‍♂️ License

Licensed under the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].