Stateful fullpage.js inspired scrolling for React
100% React Components and vanilla JS. No other Dependencies.
Demo can be found here along with the source code
On NPM
You can either require this module in your own bundler/build chain or use it directly in the browser via a script. If dropped directly into the browser, there will be a global variable named FullpageReact
.
// NPM
npm install fullpage-react --save
// Yarn
yarn add fullpage-react
import { Fullpage, Slide, HorizontalSlider } from 'fullpage-react';
const fullPageOptions = {
// for mouse/wheel events
// represents the level of force required to generate a slide change on non-mobile, 10 is default
scrollSensitivity: 7,
// for touchStart/touchEnd/mobile scrolling
// represents the level of force required to generate a slide change on mobile, 10 is default
touchSensitivity: 7,
scrollSpeed: 500,
hideScrollBars: true,
enableArrowKeys: true
};
const horizontalSliderProps = {
name: 'horizontalSlider1', // name is required
infinite: true, // enable infinite scrolling
};
const horizontalSlides = [
<Slide> Slide 2.1 </Slide>,
<Slide> Slide 2.2 </Slide>
];
horizontalSliderProps.slides = horizontalSlides;
const slides = [
<Slide> Slide 1 </Slide>,
<HorizontalSlider {...horizontalSliderProps}></HorizontalSlider>,
<Slide> Slide 3 </Slide>
];
fullPageOptions.slides = slides;
<Fullpage {...fullPageOptions} />
There are two functions located on the Fullpage
class. These are used for manually changing the vertical and horizontal slides via UI events.
There are also two optional props for <Fullpage/>
that will send data onSlideChangeStart
and onSlideChangeEnd
Sliding can be cancelled in the event that you want the user to stay fixed on a slide for some reason. If the function passed to onSlideChangeStart
returns true
, sliding can be cancellabe until it returns falsy.
An example can be found here here