Skip to content

Commit 1d9e599

Browse files
committed
fix lazy load image for some poster element
1 parent b3c011e commit 1d9e599

File tree

3 files changed

+27
-20
lines changed

3 files changed

+27
-20
lines changed

src/app/components/lazyloadimage.tsx

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,37 +13,44 @@ export default function LazyLoadImage({
1313
src,
1414
className,
1515
style,
16-
skeleton_sx
16+
skeleton_sx,
17+
in_view_only=true
1718
}:{
1819
src: string,
1920
className?: string,
2021
style?: JSX.CSSProperties,
21-
skeleton_sx?: SxProps
22+
skeleton_sx?: SxProps,
23+
in_view_only?: boolean
2224
}) {
2325

24-
let REF!: HTMLImageElement;
26+
let REF!: HTMLDivElement;
2527
const [is_loaded, set_is_loaded] = createSignal(false);
2628
const [is_in_view, set_is_in_view] = createSignal(false);
2729

2830
onMount(()=>{
29-
const observer = new IntersectionObserver((entries) => {
30-
entries.forEach(entry => {
31-
if (entry.isIntersecting) {
32-
set_is_in_view(true);
33-
observer.disconnect();
34-
}
31+
if (in_view_only) {
32+
const observer = new IntersectionObserver((entries) => {
33+
entries.forEach(entry => {
34+
if (entry.isIntersecting) {
35+
console.log("IN VIEW");
36+
set_is_in_view(true);
37+
observer.disconnect();
38+
}
39+
});
40+
}, {
41+
root: null, // viewport
42+
rootMargin: '0px',
43+
threshold: 0.1 // trigger when 10% of the element is visible
3544
});
36-
}, {
37-
root: null, // viewport
38-
rootMargin: '0px',
39-
threshold: 0.1 // trigger when 10% of the element is visible
40-
});
4145

42-
observer.observe(REF);
46+
observer.observe(REF);
4347

44-
onCleanup(() => {
45-
observer.disconnect();
46-
});
48+
onCleanup(() => {
49+
observer.disconnect();
50+
});
51+
}else{
52+
set_is_in_view(true);
53+
}
4754
})
4855

4956
return (<div ref={REF}

src/home/components/home.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ export default function Home() {
314314
<LazyLoadImage
315315
className={styles.relevant_img}
316316
src={item.poster}
317-
317+
in_view_only={false}
318318
skeleton_sx={{
319319
width: "calc((100vw + 100vh)/2*0.18)",
320320
height: "calc((100vw + 100vh)/2*0.25)",

src/view/components/view.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ export default function View() {
192192
<LazyLoadImage
193193
className={styles.container_1_box_img}
194194
src={DATA()?.manifest_data?.poster ?? ""}
195-
195+
in_view_only={false}
196196
skeleton_sx={{
197197
width: "100%",
198198
height: "calc((100vw + 100vh)/2*0.18)",

0 commit comments

Comments
 (0)