Socket
Socket
Sign inDemoInstall

react-hook-intersection-observer

Package Overview
Dependencies
6
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    react-hook-intersection-observer

A simple React Hook that uses the Intersection Observer API


Version published
Weekly downloads
1.5K
decreased by-16.05%
Maintainers
1
Install size
418 kB
Created
Weekly downloads
 

Readme

Source

useIntersectionObserver

This simple React Hook uses the Intersection Observer API in order to relay information to your UI about whether a given element is intersecting with the viewport.

Getting Started

Caution: Hooks is an experimental proposal from the React core team and is best not to use in production yet. This project will likely become production ready when Hooks are, but for now, let it serve fun and educational purposes.

Firstly, you'll want to yarn add react-hook-intersection-observer into your project.

Then, using this is as simple as:

Edit react-hook-intersection-observer

import React, { useState } from "react";
import { useIntersectionObserver } from "react-hook-intersection-observer";

const App = () => {
  const root = useRef();    // We need a ref to our "root" or our parent,
  const target = useRef();  // We need a ref to our "target" or our child-to-watch,

  // Let's use a bit of state.
  const [isThingIntersecting, setThingIntersecting] = useState(false);

  // Here's our hook! Let's give it some configuration...
  useIntersectionObserver({
    root,
    target,

    // What do we do when it intersects?
    // The signature of this callback is (collectionOfIntersections, observerElement).
    onIntersect: ([{ isIntersecting }]) => setThingIntersecting(isIntersecting)
  });

  return (
    <div className="App">
      <h1>useIntersectionObserver</h1>
      <h2>
        The thing is currently{" "}

        {!isThingIntersecting && <span style={{ color: "red" }}>not</span>}{" "}

        <span style={{ color: isThingIntersecting ? "green" : "black" }}>
          intersecting
        </span>

        !
      </h2>


      <div ref={root} className="black-box">
        <div className="larger-box">
          <div ref={target}>THE THING</div>
        </div>
      </div>
    </div>
  );
};

Contributing

This project is totally open for contributions. Get started by looking at the list of open issues, or by opening one and we can talk about improvements! Wooo!

Keywords

FAQs

Last updated on 19 Nov 2018

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