File tree Expand file tree Collapse file tree 3 files changed +27
-20
lines changed
Expand file tree Collapse file tree 3 files changed +27
-20
lines changed Original file line number Diff line number Diff 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 }
Original file line number Diff line number Diff 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)" ,
Original file line number Diff line number Diff 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)" ,
You can’t perform that action at this time.
0 commit comments