Git Product home page Git Product logo

react-scroll-wheel-handler's Introduction

React Scroll Wheel Handler

npm version

NPM

Simple react component for handling scroll trackpad, arrow keys, swipe gestures and mouse wheel event.

Demo

Live Demo

#Update

  • 1.0.0: change function to check when mouse/trackpad value increase (fix windows scroll)

Usage

  1. Install the npm package:
    npm install --save react-scroll-wheel-handler
    or
    yarn add react-scroll-wheel-handler
  1. Import it:
import ReactScrollWheelHandler from "react-scroll-wheel-handler";
  1. Config the component:
<ReactScrollWheelHandler
    upHandler={() => console.log("scroll up")}
    downHandler={() => console.log("scroll down")}
>
    ...
</ReactScrollWheelHandler>

#Props

  • upHandler: Function that is triggered on scroll up
  • downHandler: Function that is triggered on scroll down
  • leftHandler: Function that is triggered on scroll left
  • rightHandler: Function that is triggered on scroll right
  • customStyle: Inline styles applied to the container component.
  • CustomContainerComponent: Function/Component. It will be rendered in place of the container div.
  • pauseListeners: Boolean. isRequired. Default: false. With this props you can block all events from be fired
  • timeout: Integer. isRequired. Default: 600. Timeout between scroll.
  • disableKeyboard: Boolean. Default: false.
  • preventScroll: Boolean. isRequired. Prevent scroll, if you want to implement your own scrolling. Default: false.

All the other props are passed to the div/component returned.

Example

import React, { Component } from "react";
import ReactScrollWheelHandler from " react-scroll-wheel-handler";

class App extends React.Component {
    state = {
        currentIndex: 0,
        colors: ["red", "black", "grey", "blue", "green"]
    };
    nextIndex = () => {
        const { colors, currentIndex } = this.state;
        if (currentIndex == colors.length - 1) {
            return this.setState({ currentIndex: 0 });
        }

        return this.setState({
            currentIndex: currentIndex + 1
        });
    };

    prevIndex = () => {
        const { colors, currentIndex } = this.state;
        if (currentIndex == 0) {
            return this.setState({
                currentIndex: colors.length - 1
            });
        }

        return this.setState({
            currentIndex: currentIndex - 1
        });
    };

    render() {
        const { colors, currentIndex } = this.state;
        return (
            <div>
                <ReactScrollWheelHandler
                    upHandler={this.prevIndex}
                    downHandler={this.nextIndex}
                    customStyle={{
                        width: "100%",
                        height: "100vh",
                        backgroundColor: colors[currentIndex],
                        transition: "background-color .4s ease-out"
                    }}
                >
                    <h1>CIAO</h1>
                </ReactScrollWheelHandler>
            </div>
        );
    }
}

react-scroll-wheel-handler's People

Contributors

etto91 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.