Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

kingRayhan/reactjs-visibility

Repository files navigation

React Visibility

Detect when an element is becoming visible or hidden on the page.

GitHub Pages deploy Publish to NPM

npm bundle size npm bundle size npm downloads GitHub license

Installation

npm install reactjs-visibility

⚠️ This plugin uses the Intersection Observer API that is not supported in every browser (currently supported in Edge, Firefox and Chrome). You need to include a polyfill to make it work on incompatible browsers.

Detech visibility with <VisibilityObserver> component

import React from "react";
import { VisibilityObserver } from "reactjs-visibility";
const App = () => {
 const handleChangeVisibility = (visible) => {
 if (visible) {
 alert("I am now visible");
 }
 };
 const options = {
 rootMargin: "200px",
 };
 return (
 <div>
 <h1 style={{ fontSize: 500 }}>
 Lorem ipsum dolor sit, amet consectetur adipisicing elit. Magni nam
 exercitationem sit alias perferendis, odit ex optio iure assumenda!
 Voluptatum, nulla. Assumenda iusto nesciunt adipisci totam repellat id
 excepturi minima.
 </h1>
 <VisibilityObserver
 onChangeVisibility={handleChangeVisibility}
 options={options}
 >
 Loadmore...
 </VisibilityObserver>
 </div>
 );
};

Detech visibility with useVisibility() Hook

Example 1

import React from "react";
import { useVisibility } from "reactjs-visibility";
const App = () => {
 const handleChangeVisibility = (visible) => {
 if (visible) {
 alert("I am now visible");
 }
 };
 const options = {};
 const { ref, visible } = useVisibility({
 onChangeVisibility: handleChangeVisibility,
 options,
 });
 console.log(visible);
 return (
 <div>
 <h1 style={{ fontSize: 50 }}>
 Lorem ipsum dolor sit, amet consectetur adipisicing elit. Magni nam
 exercitationem sit alias perferendis, odit ex optio iure assumenda!
 Voluptatum, nulla. Assumenda iusto nesciunt adipisci totam repellat id
 excepturi minima.
 </h1>
 <div ref={ref}>Loadmore...</div>
 </div>
 );
};

Example 2

import React from "react";
import { useVisibility } from "reactjs-visibility";
const App = () => {
 const { ref, visible } = useVisibility();
 useEffect(() => {
 if (visible) {
 alert("I am now visible");
 }
 }, [visible]);
 return (
 <div>
 <h1 style={{ fontSize: 50 }}>
 Lorem ipsum dolor sit, amet consectetur adipisicing elit. Magni nam
 exercitationem sit alias perferendis, odit ex optio iure assumenda!
 Voluptatum, nulla. Assumenda iusto nesciunt adipisci totam repellat id
 excepturi minima.
 </h1>
 <div ref={ref}>Loadmore...</div>
 </div>
 );
};

Options

It's possible to pass the IntersectionObserver options object using the intersection

License

MIT license, Copyright (c) KingRayhan. For more information see LICENSE.

About

Detect when an element is becoming visible or hidden on the page.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /