Socket
Socket
Sign inDemoInstall

@custom-react-hooks/use-on-screen

Package Overview
Dependencies
3
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @custom-react-hooks/use-on-screen

The `useOnScreen` hook utilizes the Intersection Observer API to detect if an element is visible within the viewport. It's ideal for scenarios such as lazy loading images, triggering animations on scroll, and implementing features like infinite scroll.


Version published
Weekly downloads
83
increased by124.32%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

useOnScreen Hook

The useOnScreen hook utilizes the Intersection Observer API to detect if an element is visible within the viewport. It's ideal for scenarios such as lazy loading images, triggering animations on scroll, and implementing features like infinite scroll.

Features

  • Visibility Detection: Determines if an element is currently visible in the viewport.
  • Memoization of Observer: Efficient use of resources by memoizing the Intersection Observer instance.
  • One-time Observation: Option to unobserve the element after it becomes visible for the first time.
  • Customizable Observer Options: Supports threshold, root, and root margin options for the observer.

Installation

Installing Only Current Hooks

npm install @custom-react-hooks/use-on-screen

or

yarn add @custom-react-hooks/use-on-screen

Installing All Hooks

npm install @custom-react-hooks/all

or

yarn add @custom-react-hooks/all

Usage

Import and use the useOnScreen hook in your React components. You can also specify whether the element should be unobserved after first being visible by setting the once parameter.

import { useOnScreen } from '@custom-react-hooks/all';

const OnScreenComponent = () => {
  const { ref, isIntersecting } = useOnScreen({ threshold: 1 }, false);

  return (
    <div ref={ref}>
      {isIntersecting ? 'Element is visible!' : 'Scroll down...'}
    </div>
  );
};

export default OnScreenComponent;

API Reference

Parameters

  • options: Optional IntersectionObserverInit object to customize the observer.
  • once: Boolean flag indicating if the element should be unobserved after it becomes visible for the first time.

Returns

  • ref: Ref object to be attached to the element you want to observe.
  • isIntersecting: Boolean indicating whether the observed element is in the viewport.

Use Cases

  • Lazy Loading: Load content (like images or videos) only when they enter the viewport.
  • Animation on Scroll: Trigger animations or transitions when an element comes into view.
  • Infinite Scrolling: Load more content as the user scrolls down a page.
  • Visibility Tracking: Track which components are visible on the screen for analytics.

Contributing

Your contributions to enhance useOnScreen are highly appreciated. Feel free to submit issues or pull requests to improve its functionality and performance.

FAQs

Last updated on 09 Dec 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