IntersectionObserver рдПрдкреАрдЖрдИ рдФрд░ рдЖрд▓рд╕реА рдЫрд╡рд┐ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ

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



рдЖрдЬ рд╣рдо рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдореЗрдВ рдПрдХ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд▓рд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ IntersectionObserver API рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╕рд░рд▓ рд╡реЗрдм рдкреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕рд╛рдордЧреНрд░реА рд╢реБрд░реБрдЖрддреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИред

рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдЪрд┐рддреНрд░ рдХреНрдпрд╛ рд╣реИ?


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

рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЖрд▓рд╕реА рдЫрд╡рд┐ рд▓реЛрдб рдХрд░рдиреЗ рд╡рд╛рд▓реА рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдЬреЛрдЦрд┐рдо рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН, рдпрджрд┐ рд╣рдо рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕реНрдерд┐рддрд┐ рдФрд░ рд╕рдВрд╕рд╛рдзрди рдЦрдкрдд рдореЗрдВ рдкреГрд╖реНрда рд▓рдЧрд╛рдиреЗ рдХреЗ рд╕рдордп рдкрд░ рдЙрд╕рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓рддреЗ рд╣реИрдВ:

  1. рдкрд╣рд▓реА рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХрд╛ рд╕рдордпред рдпрд╣ рд╡рд╣ рд╕рдордп рд╣реИ рдЬрдм рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ (рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдХреЗрд╡рд▓ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ) рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЛрдб рдХреА рддрдХрдиреАрдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕рдордп рдЕрдиреБрдХреВрд▓рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреГрд╖реНрда рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕рдордп рдореЗрдВ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИред
  2. рд╕рдВрд╕рд╛рдзрди рдХреА рдЦрдкрддред рдордиреБрд╖реНрдп рдЕрдзреАрд░ рдкреНрд░рд╛рдгреА рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рд▓реЛрдб рд╣реЛрдиреЗ рдореЗрдВ 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 рдЖрдкрдХреЛ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рдФрд░ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдпреЛрдЬрдирд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рд╕рд╛рдордЧреНрд░реА рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ рдФрд░ рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝реЗрдВред

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЖрд▓рд╕реА рдЫрд╡рд┐ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ?

Source: https://habr.com/ru/post/hi453586/


All Articles