рд╡реЗрдм рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд▓рд╕реА рдЫрд╡рд┐ рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рдЕрдиреБрдХреВрд▓рди рддрдХрдиреАрдХ рд╣реИред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЪрд┐рддреНрд░ "рднрд╛рд░реА" рд╕рдВрд╕рд╛рдзрди рд╣реИрдВ рдЬреЛ рдЖрдзреБрдирд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд╕рд╛рде рднреАрдбрд╝ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдкрд╣рд▓реЗ рд╣реА рдХреБрдЫ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рдЪреБрдХреЗ рд╣реИрдВред
рдпрд╣рд╛рдВ рдЖрдк рд╡реЙрд▓рдорд╛рд░реНрдЯ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рджрд┐рдП рдЧрдП рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реАрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ IntersectionObserver рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред
рдпрд╣рд╛рдБ рд╕реНрдереИрддрд┐рдХ рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдкрд░ рдПрдХ рд▓реЗрдЦ рд╣реИред
рдпрд╣рд╛рдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдкрд░ рд╣рд╛рд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рд╣реИред

рдЖрдЬ рд╣рдо рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдореЗрдВ рдПрдХ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд▓рд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ IntersectionObserver API рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╕рд░рд▓ рд╡реЗрдм рдкреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕рд╛рдордЧреНрд░реА рд╢реБрд░реБрдЖрддреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИред
рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдЪрд┐рддреНрд░ рдХреНрдпрд╛ рд╣реИ?
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╕рдордп, рджреЛ рд╕рдВрдХреЗрддрдХ рд╕рдмрд╕реЗ рдЖрдЧреЗ рдЖрддреЗ рд╣реИрдВ - рдкрд╣рд▓реА рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХрд╛ рд╕рдордп (рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдЯрд╛рдЗрдо) рдФрд░ рд╕рдВрд╕рд╛рдзрди рдЦрдкрдд (рд░рд┐рд╕реЛрд░реНрд╕ рдЙрдкрднреЛрдЧрддрд╛)ред рдЙрдиреНрд╣реЗрдВ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЙрди рд▓реЛрдЧреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ рдЬреЛ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд▓рдЧреЗ рд╣реБрдП рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рди рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓реЗрддреЗ рд╣реИрдВ рдпрд╛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди, рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рдвреВрдВрдврдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдХрд┐ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЙрддреНрдкрдиреНрди рди рд╣реЛрдВред
рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЖрд▓рд╕реА рдЫрд╡рд┐ рд▓реЛрдб рдХрд░рдиреЗ рд╡рд╛рд▓реА рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдЬреЛрдЦрд┐рдо рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН, рдпрджрд┐ рд╣рдо рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕реНрдерд┐рддрд┐ рдФрд░ рд╕рдВрд╕рд╛рдзрди рдЦрдкрдд рдореЗрдВ рдкреГрд╖реНрда рд▓рдЧрд╛рдиреЗ рдХреЗ рд╕рдордп рдкрд░ рдЙрд╕рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓рддреЗ рд╣реИрдВ:
- рдкрд╣рд▓реА рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХрд╛ рд╕рдордпред рдпрд╣ рд╡рд╣ рд╕рдордп рд╣реИ рдЬрдм рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ (рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдХреЗрд╡рд▓ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ) рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЛрдб рдХреА рддрдХрдиреАрдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕рдордп рдЕрдиреБрдХреВрд▓рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреГрд╖реНрда рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕рдордп рдореЗрдВ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИред
- рд╕рдВрд╕рд╛рдзрди рдХреА рдЦрдкрддред рдордиреБрд╖реНрдп рдЕрдзреАрд░ рдкреНрд░рд╛рдгреА рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рд▓реЛрдб рд╣реЛрдиреЗ рдореЗрдВ 3 рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ 70% рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрд╕ рд╕рд╛рдЗрдЯ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрддрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд▓реЛрдб рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдЖрдкрдХреЛ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдХреЛрдб рдЦрдВрдбреЛрдВ рдореЗрдВ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдЙрди рдкреГрд╖реНрдареЛрдВ рдкрд░ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВ рдЬрд┐рдирдХреА рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕рд╛рдЗрдЯ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрди рдХреА рдЦрдкрдд рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЧрддрд┐ рджреЗрддреА рд╣реИрдВ, рдЬреЛ рд╕рдордп рд╡реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдКрдкрд░ рд▓рд╛рддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рддрднреА рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдпрд╣рд╛рдБ рдХреБрдЫ рдлрд╛рдпрджреЗ рд╣реИрдВ рдЬреЛ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рд╡реЗрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рджреЗрддрд╛ рд╣реИ:
- рдкреЗрдЬ рддреЗрдЬреА рд╕реЗ рд▓реЛрдб рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЪрд╛рд▓реВ рд╣реЛрддреЗ рд╣реИрдВред
- рдкреГрд╖реНрдареЛрдВ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░, рдЖрдкрдХреЛ рдХрдо рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
IntersectionObserver API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдЫрд╡рд┐рдпрд╛рдВ
рдпрджрд┐ рдЖрдк рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗрдм рдкреЗрдЬ рдХреИрд╕реЗ рд▓реЛрдб рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрди рдЪрд┐рддреНрд░реЛрдВ рдпрд╛ рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдкреГрд╖реНрда рдХреЗ рджреГрд╢реНрдп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдореМрдЬреВрдж рдЫрд╡рд┐рдпрд╛рдВ рдкрд╣рд▓реЗ рд▓реЛрдб рдХреА рдЬрд╛рддреА рд╣реИрдВред рдлрд┐рд░, рдЬреИрд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреГрд╖реНрда рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЕрдиреНрдп рдЪрд┐рддреНрд░ рд▓реЛрдб рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдкреГрд╖реНрда рдХреЗ рджреГрд╢реНрдп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдкреГрд╖реНрда рдФрд░ рдЙрд╕рдХрд╛ рджреГрд╢реНрдп рдХреНрд╖реЗрддреНрд░рдкрд┐рдЫрд▓реЗ рдЖрдВрдХрдбрд╝реЗ рдкрд░ рдПрдХ рдирдЬрд░ред рдпрд╣рд╛рдВ рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рд╡реЗрдм рдкреЗрдЬ рдХреЛ рд▓реЛрдб рдХрд░рдХреЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЫрд╡рд┐рдпрд╛рдБ
#IMG_1
рдФрд░
#IMG_2
рдкреГрд╖реНрда рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рднреАрддрд░ рд╣реИрдВ рдЬреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдкреГрд╖реНрда рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЗрд╕ рдХреНрд░рдо рдХреЛ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рдЗрд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЫрд╡рд┐рдпрд╛рдВ
#IMG_1
,
#IMG_2
,
#IMG_3
рдФрд░
#IMG_4
ред рдХреЗрд╡рд▓
#IMG_1
рдФрд░
#IMG_2
рд▓рд┐рдП рджреГрд╢реНрдпрдорд╛рди рд╣реИрдВ, рдФрд░
#IMG_3
рдФрд░
#IMG_4
рдЙрд╕рд╕реЗ рдЫрд┐рдкреЗ рд╣реБрдП рд╣реИрдВред рдпрджрд┐ рдЖрдк рдкреГрд╖реНрда рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдкрд╣рд▓реА рдФрд░ рджреВрд╕рд░реА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рддреАрд╕рд░реА рдФрд░ рдЪреМрдереА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рд╕реЗ рд╕рд╛рдЗрдЯ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреГрд╖реНрда рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рддреАрд╕рд░реА рдЫрд╡рд┐ рджрд┐рдЦрд╛рдИ рджреЗ - рдпрд╣ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдЬрд╛рд░реА рд░рд╣рддреА рд╣реИ рдФрд░ рдЪреМрдереА рдЫрд╡рд┐ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рддреЛ рдпрд╣ рднреА рд▓реЛрдб рд╣реЛрддреА рд╣реИред

рдПрдХ рдкреГрд╖реНрда рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ рдФрд░ рдЪрд┐рддреНрд░ рд▓реЛрдб рдХрд░рдирд╛рдЕрдм рдЬрдм рд╣рдордиреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЦреБрдж рд╕реЗ рдкреВрдЫрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдП рдХрд┐ рдкреГрд╖реНрда рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрддреНрд╡ рдЙрд╕рдХреЗ рджреГрд╢реНрдп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдПрдХ рдПрдкреАрдЖрдИ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдкреГрд╖реНрда рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд╖реЗрддреНрд░ рдХрдм рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдпрд╣ IntersectionObserver API рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдпрд╣ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ, рддрддреНрд╡реЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ рддрддреНрд╡ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рджрд╛рдпрд░реЗ рдХреЛ рдкрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рддрддреНрд╡ рдХреА рд╕реАрдорд╛ рдХреЛ рдкрд╛рд░ рдХрд░рддрд╛ рд╣реИред
рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛрдб рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ:
<img class="lzy_img" src="lazy_img.jpg" data-src="real_img.jpg" />
рд╡рд░реНрдЧ рдЖрдкрдХреЛ рдПрдХ рддрддреНрд╡ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЫрд╡рд┐ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
src
рд╡рд┐рд╢реЗрд╖рддрд╛ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫрд╡рд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдЫрд╡рд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
data-src
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫрд╡рд┐ рдХреЗ рдкрддреЗ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рддрддреНрд╡ рдкреГрд╖реНрда рдХреЗ рджреГрд╢реНрдп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдкрд░ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЕрдм рд╡рд╣ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдЙрд╕ рдкрд▓ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП IntersectionObserver API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬрдм рдЫрд╡рд┐ рдкреГрд╖реНрда рджреЗрдЦрдиреЗ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреА рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ,
IntersectionObserver
рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВ:
const imageObserver = new IntersectionObserver(...);
IntersectionObserver
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдПрдХ рд╕рд░рдгреА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЕрдиреНрдп рдПрдХ
IntersectionObserver
рдЙрджрд╛рд╣рд░рдгред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
const imageObserver = new IntersectionObserver((entries, imgObserver) => { entries.forEach((entry) => {
рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрддрд╛ рд╣реИ
entries
рд╕рд░рдгреА
entries
рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдП рдЧрдП рдЪрд┐рддреНрд░ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдХреЛ рдХрд╛рдЯрддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ
src
рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдЬреЛ рд╕рдВрдЧрдд рдЫрд╡рд┐ рд░рд┐рдХреЙрд░реНрдб рд╣реИ рдЙрд╕рдХреА
data-src
рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред
const imageObserver = new IntersectionObserver((entries, imgObserver) => { entries.forEach((entry) => { if(entry.isIntersecting) { const lazyImage = entry.target lazyImage.src = lazyImage.dataset.src } }) });
рдпрд╣рд╛рдБ рд╣рдо рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП
if(entry.isIntersecting) {...}
, рдХреНрдпрд╛ рддрддреНрд╡ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреЗрдЦрдиреЗ рд╡рд╛рд▓реЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдкрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рд╣рдо
lazyImage
рддрддреНрд╡ рдореЗрдВ
img
рддрддреНрд╡ рдХреЛ
lazyImage
ред рдлрд┐рд░ рд╣рдо рдЗрд╕рдХреА
src
рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕рдХреЗ
src
рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдереАред рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЫрд╡рд┐ рдЬрд┐рд╕рдХрд╛ рдкрддрд╛
data-src
рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд
data-src
рд▓реЛрдб рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫрд╡рд┐ рдХреЗ рд╕рд╛рде, рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдЫрд╡рд┐,
lazy_img.jpg
рдмрджрд▓рдиреЗ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред
рдЕрдм рд╣рдореЗрдВ рд╣рдорд╛рд░реЗ рд╣рд┐рдд рдХреЗ рддрддреНрд╡реЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ
IntersectionObserver
рдЙрджрд╛рд╣рд░рдг рдХреЗ
.observe()
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
imageObserver.observe(document.querySelectorAll('img.lzy_img'));
рдпрд╣рд╛рдВ рд╣рдо
document.querySelectorAll('img.lzy_img')
lzy_img
рдХреНрд▓рд╛рд╕ рдХреЗ рд╕рднреА
document.querySelectorAll('img.lzy_img')
рдХреЛ
document.querySelectorAll('img.lzy_img')
рдХрдорд╛рдВрдб
document.querySelectorAll('img.lzy_img')
рдФрд░ рдЙрдиреНрд╣реЗрдВ
.observe()
рд╡рд┐рдзрд┐ рд╕реЗ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд╣ рдЙрдиреНрд╣реЗрдВ рджреЗрдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо Node.js рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЖрд░рдВрдн рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
mkdir lzy_img cd lzy_img npm init -y
рдЕрдм
lzy_img
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ
lzy_img
рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
touch index.html
рдЗрд╕рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:
<html> <title>Lazy Load Images</title> <body> <div> <div style=""> <img class="lzy_img" src="lazy_img.jpg" data-src="img_1.jpg" /> <hr /> </div> <div style=""> <img class="lzy_img" src="lazy_img.jpg" data-src="img_2.jpg" /> <hr /> </div> <div style=""> <img class="lzy_img" src="lazy_img.jpg" data-src="img_3.jpg" /> <hr /> </div> <div style=""> <img class="lzy_img" src="lazy_img.jpg" data-src="img_4.jpg" /> <hr /> </div> <div style=""> <img class="lzy_img" src="lazy_img.jpg" data-src="img_5.jpg" /> <hr /> </div> </div> <script> document.addEventListener("DOMContentLoaded", function() { const imageObserver = new IntersectionObserver((entries, imgObserver) => { entries.forEach((entry) => { if (entry.isIntersecting) { const lazyImage = entry.target console.log("lazy loading ", lazyImage) lazyImage.src = lazyImage.dataset.src } }) }); const arr = document.querySelectorAll('img.lzy_img') arr.forEach((v) => { imageObserver.observe(v); }) }) </script> </body> </html>
рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ 5 рдЪрд┐рддреНрд░ рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп
lazy_img.jpg
рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ
data-src
рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣рд╛рдБ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдЫрд╡рд┐ рдирд╛рдореЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ:
lazy_img.jpg img_1.jpg img_2.jpg img_3.jpg img_4.jpg img_5.jpg
рдЖрдкрдХреЛ рдирд┐рдореНрди рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рджреГрд╢реНрдп рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рд▓рд╛рдХрд░ рдЗрди рд╕рднреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, Windows рдкреЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
lazy_img.jpg
рдлрд╝рд╛рдЗрд▓ рддреИрдпрд╛рд░ рдХреА рдЧрдИ
lazy_img.jpg
, рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЪрд┐рддреНрд░ (
img_*.jpg
Jpg )
pixabay.com рд╕реЗ рд▓рд┐рдП рдЧрдП рдереЗред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
IntersectionObserver
рдЖрд╡реГрддреНрддрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдПрдХ
console.log()
рдХреЙрд▓ред рдпрд╣ рд╣рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рдЕрдм
index.html
рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо
http-server
рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
npm i http-server
package.json
рдХреА
scripts
рдЕрдиреБрднрд╛рдЧ рдореЗрдВ
start
рдЧреБрдг рдЬреЛрдбрд╝реЗрдВ
package.json
рдлрд╝рд╛рдЗрд▓ рдХреА рд╕реНрдерд┐рддрд┐:
"scripts": { "start": "http-server ./" }
рдЙрд╕рдХреЗ рдмрд╛рдж, рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ
npm run start
рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред
рдЕрдм рдмреНрд░рд╛рдЙрдЬрд░ рдЦреЛрд▓реЗрдВ рдФрд░ рдПрдбреНрд░реЗрд╕
127.0.0.1:8080
ред рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣рдорд╛рд░рд╛
index.html
рдкреЗрдЬ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдХреГрддрд┐ рдХреА рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдкреЗрдЬрдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЪрд┐рддреНрд░ рдХрд╣рд╛рдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдЕрдм рдХреЗрд╡рд▓ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рд╣рдо рдЗрд╕ рдзрд╛рд░рдгрд╛ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдХрд┐ рдкрд╣рд▓реА рдЫрд╡рд┐ рджреЗрдЦрдиреЗ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкреГрд╖реНрда рдЕрдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛ред
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдиреЗ рдкрд╣рд▓реА рдЫрд╡рд┐ рдЕрдкрд▓реЛрдб рдХреАрдЕрдиреНрдп рдЪрд┐рддреНрд░ рдЕрднреА рддрдХ рдЕрдкрд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред рд╡реЗ рдЕрднреА рддрдХ рджреЗрдЦрдиреЗ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдирд╣реАрдВ рдкрд╣реБрдВрдЪреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдХрдВрд╕реЛрд▓ рджреЗрдЦрддреЗ рд╕рдордп рдкреГрд╖реНрда рдкрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред рдпрд╣ рдЗрд╕ рддрдереНрдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ рдХрд┐ рдЬрдм рджреЗрдЦрдиреЗ рдХреА рдЦрд┐рдбрд╝рдХреА рдореЗрдВ рдПрдХ рд╣реА рдЫрд╡рд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕реЗ рдХрдИ рдмрд╛рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред
рдПрдХ рд╣реА рдЫрд╡рд┐ рдХреЗ рдХрдИ рдЕрдкрд▓реЛрдбрдпрд╣ рд╡рд╣ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЕрдирд╛рд╡рд╢реНрдпрдХ рдмрд░реНрдмрд╛рджреА рд╣реЛрддреА рд╣реИ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рдЖрддреА рд╣реИред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ
img
рддрддреНрд╡ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫрд╡рд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓реЛрдб рд╣реИ, рддрддреНрд╡реЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рдЬреЛ рдХрд┐ рд╣рдорд╛рд░рд╛
IntersectionObserver
рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд░рд╣рд╛ рд╣реИред рд╣рдореЗрдВ рдЗрд╕ рддрддреНрд╡ рд╕реЗ
lzy_img
рд╡рд░реНрдЧ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╕рдВрдкрд╛рджрд┐рдд рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдореЗрдВ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
<script> document.addEventListener("DOMContentLoaded", function() { const imageObserver = new IntersectionObserver((entries, imgObserver) => { entries.forEach((entry) => { if (entry.isIntersecting) { const lazyImage = entry.target console.log("lazy loading ", lazyImage) lazyImage.src = lazyImage.dataset.src lazyImage.classList.remove("lzy_img"); imgObserver.unobserve(lazyImage); } }) }); const arr = document.querySelectorAll('img.lzy_img') arr.forEach((v) => { imageObserver.observe(v); }) }) </script>
рд╕рдВрдмрдВрдзрд┐рдд
img
рддрддреНрд╡ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫрд╡рд┐ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕рдХрд╛
lzy_img
рд╡рд░реНрдЧ
lzy_img
рдЬрд╛рддрд╛
lzy_img
рдФрд░ рддрддреНрд╡ рдХреЛ рдЙрди рддрддреНрд╡реЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ
IntersectionObserver
рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред
рдпрд╣рд╛рдБ рдирдореВрдирд╛ рдХреЛрдб рд╣реИ:
<html> <title>Lazy Load Images</title> <body> <div> <div style=""> <img class="lzy_img" src="lazy_img.jpg" data-src="img_1.jpg" /> <hr /> </div> <div style=""> <img class="lzy_img" src="lazy_img.jpg" data-src="img_2.jpg" /> <hr /> </div> <div style=""> <img class="lzy_img" src="lazy_img.jpg" data-src="img_3.jpg" /> <hr /> </div> <div style=""> <img class="lzy_img" src="lazy_img.jpg" data-src="img_4.jpg" /> <hr /> </div> <div style=""> <img class="lzy_img" src="lazy_img.jpg" data-src="img_5.jpg" /> <hr /> </div> </div> <script> document.addEventListener("DOMContentLoaded", function() { const imageObserver = new IntersectionObserver((entries, imgObserver) => { entries.forEach((entry) => { if (entry.isIntersecting) { const lazyImage = entry.target console.log("lazy loading ", lazyImage) lazyImage.src = lazyImage.dataset.src lazyImage.classList.remove("lzy_img"); imgObserver.unobserve(lazyImage); } }) }); const arr = document.querySelectorAll('img.lzy_img') arr.forEach((v) => { imageObserver.observe(v); }) }) </script> </body> </html>
рдкрд░рд┐рдгрд╛рдо
рд╣рдордиреЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХреА рдЬрд╛рдВрдЪ рдХреАред рд▓реЗрдХрд┐рди IntersectionObserver рдЖрдкрдХреЛ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рдФрд░ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдпреЛрдЬрдирд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рд╕рд╛рдордЧреНрд░реА рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ рдФрд░
рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝реЗрдВред
рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЖрд▓рд╕реА рдЫрд╡рд┐ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ?
