Socket
Socket
Sign inDemoInstall

use-smooth-horizontal-scroll

Package Overview
Dependencies
5
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

use-smooth-horizontal-scroll

This package provides a custom hook for smooth horizontal scrolling in React. The hook allows for setting a scroll container, handling scroll events, scrolling to a specific point, and determining if the user is at the start or end of the scrollable area.


Version published
Maintainers
1
Weekly downloads
404
decreased by-6.91%

Weekly downloads

Readme

Source

Smooth Horizontal Scroll

A small utility hook for adding smooth horizontal scrolling to your React project.

Installation

npm install use-smooth-horizontal-scroll

or

yarn add use-smooth-horizontal-scroll

Usage

First, import the hook into your component:

import useSmoothHorizontalScroll from 'use-smooth-horizontal-scroll';

Then, use the hook in your component:

const { scrollContainerRef, handleScroll, scrollTo, isAtStart, isAtEnd } = useSmoothHorizontalScroll();

You'll need to pass the scrollContainerRef to the element you want to apply the smooth scrolling to, and attach the handleScroll function to the onScroll event of that element.

<div ref={scrollContainerRef} onScroll={handleScroll}>
  {/* Your content here */}
</div>

You can use the scrollTo function to scroll to a specific position, or scroll by a specific amount.

<button onClick={() => scrollTo(-100)}>Scroll Left</button>
<button onClick={() => scrollTo(100)}>Scroll Right</button>

You can also check the isAtStart and isAtEnd state to disable buttons for scrolling if the user has reached the start or end of the content.

<button disabled={isAtStart} onClick={() => scrollTo(-100)}>Scroll Left</button>
<button disabled={isAtEnd} onClick={() => scrollTo(100)}>Scroll Right</button>

Full code example

import { useRef, useState } from "react";
import useSmoothHorizontalScroll from "use-smooth-horizontal-scroll";

const MyComponent = () => {
  const { scrollContainerRef, handleScroll, scrollTo, isAtStart, isAtEnd } = useSmoothHorizontalScroll();

  return (
    <div>
      <button onClick={() => scrollTo(-100)} disabled={isAtStart}>
        Scroll Left
      </button>
      <div ref={scrollContainerRef} onScroll={handleScroll} style={{ overflowX: "scroll" }}>
        {/* Your scrolling content here */}
      </div>
      <button onClick={() => scrollTo(100)} disabled={isAtEnd}>
        Scroll Right
      </button>
    </div>
  );
};

Compatibility

This package is compatible with React version 16.8 and above.

Similar to

This package is similar to the horizontal scrolling feature on YouTube.

License

This package is open-source and available under the MIT license.

Keywords

FAQs

Last updated on 27 Jan 2023

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc