Comments (2)
You can use a custom hook for your images in your page component. Here's a hook I created:
import React from "react";
export default function useInView(ref: React.RefObject<HTMLDivElement>) {
const [inView, setInView] = React.useState(false);
React.useEffect(() => {
if (!ref.current) return;
const observer = new window.IntersectionObserver(
([entry]) => {
if (entry.isIntersecting) {
if (inView) {
observer.disconnect();
}
setInView(true);
return;
}
},
{
root: null,
threshold: 0.1,
}
);
observer.observe(ref.current);
return () => {
observer.disconnect();
};
}, [ref]);
return { inView };
}
and I am using this in component by passing ref:
interface PageBookletProps {
title: string;
forceImgLoad?: boolean;
img1Url: string;
img2Url?: string;
}
const PageBooklet = React.forwardRef((props: PageBookletProps, ref: any) => {
const container = React.useRef<HTMLDivElement>(null);
const { inView } = useInView(container);
return (
<div ref={ref}>
<div
ref={container}
className="h-full w-full bg-cover bg-top bg-no-repeat flex items-center justify-center"
style={{ backgroundImage: "url('assets/booklet-bg.JPG')" }}
>
<div className="h-[70%] w-full flex flex-col justify-between">
<div className="h-[90%] flex justify-evenly">
<div className="h-full">
<img
className="h-full border-8 border-slate-400"
alt="First Image"
src={
props.forceImgLoad
? props.img1Url
: inView
? props.img1Url
: undefined
}
/>
</div>
{props.img2Url && (
<div className="h-full">
<img
className="h-full border-8 border-slate-400"
alt="Second Image"
src={inView ? props.img2Url : undefined}
/>
</div>
)}
</div>
<h1 className="font-bold uppercase text-slate-400">{props.title}</h1>
</div>
</div>
</div>
);
});
export default PageBooklet;
with this hook, it only loads when page is flipped. I created this because I am displaying a booklet with more than 850 pages with images.
from react-pageflip.
Is there any update on this or maybe a way through which this can be implemented
I want to load a pdf of 200 pages with this
any help would be appreciated
from react-pageflip.
Related Issues (20)
- Is there any way to interact with the content? HOT 1
- Unwanted line in Firefox
- Each child in a list should have a unique "key" prop error with child components HOT 1
- images displays blurry on ios HOT 1
- Odd number of images
- How to center the book on close?? HOT 1
- Issue with responsiveness. HOT 1
- can you please put an autoCenter functionality in the book? Because it's not centered when the book is closed. I want the book fully centered on both opening and closing. I am sure you will solve my problem. I am working on it for 1 month but I can't fix it. Thank you
- Can we change the animation of the flip ?
- UX: how to invite user interaction with a pageflip
- First page cover only HOT 2
- Nextjs ref is always null
- How to force 1 page only to be rendered on mobile? HOT 4
- There are click events in the content, seemingly can not prohibit bubbling, how to solve
- Can I put only image in page?
- Change Shadow flip color
- Flip corner animation doesn't have same effect as desktop on mobile
- Zoom in/out Functionality needs to add
- Animation from cover to first page on mobile looks different to example
- No flip animation each page is rendering independantly HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-pageflip.