Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@atakanermis/react-scroll-wheel-handler

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@atakanermis/react-scroll-wheel-handler

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

  • 2.4.4
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
22
increased by4.76%
Maintainers
1
Weekly downloads
 
Created
Source

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

  • 2.0.0:

add prop disableSwipe.

removed customStyle from props.

Replace CustomContainerComponent with CustomComponent. It must have ref passed as a prop. Example:

const CustomComponent = forwardRef(({ children, ...props }, ref) => (
  <div ref={ref} {...props} id="custom">
    {children}
  </div>
));
  • 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={(e) => console.log("scroll up")}
  downHandler={(e) => 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
  • CustomComponent: Component with forwardRef. 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.
  • disableSwipe: Boolean. Default: false.
  • disableSwipeWithMouse: Boolean. Default: false.
  • preventScroll: Boolean. isRequired. Prevent scroll, if you want to implement your own scrolling. Default: false.
  • wheelConfig: Array. Default: []. Set config for Lethargy lib. Example: [7, 100, 0.05]. stability, sensitivity, tolerance.

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}
          style={{
            width: "100%",
            height: "100vh",
            backgroundColor: colors[currentIndex],
            transition: "background-color .4s ease-out",
          }}
        >
          <h1>SCROLL FOR CHANGE BACKGROUND COLOR</h1>
        </ReactScrollWheelHandler>
      </div>
    );
  }
}

FAQs

Package last updated on 24 May 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc