рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ
рд╡рд┐рднрд┐рдиреНрди рдорд╛рдирджрдВрдбреЛрдВ рдФрд░ рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдирд┐рдлреЗрд╕реНрдЯреЛрдВ рдореЗрдВ рдПрдХ рдРрд╕рд╛ рдЖрдЗрдЯрдо рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ рдХреЗ рдЦреБрд▓рдиреЗ рдкрд░ рдкреЗрдЬ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ рд╕реЗ рддрд╛рддреНрдкрд░реНрдп рдХреЗрд╡рд▓ рдЙрд╕рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рд╕реЗ рд╣реИред
рдХрдИ рд▓реЛрдЧ рд╕рд╡рд╛рд▓ рдкреВрдЫреЗрдВрдЧреЗ: "рдХреНрдпреЛрдВ рдирд╣реАрдВ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ?" рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдпрд╛ рддреЛ рдмрд┐рд▓реНрдХреБрд▓ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдпрд╛ рдмрд╣реБрдд рдЦрд░рд╛рдм рддрд░реАрдХреЗ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред рдЖрдк рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
.body { overflow: hidden;}
рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдкреЗрдЬ рдХреА рдПрдХ рд╣рд▓реНрдХреА-рдлреБрд▓реНрдХреА рдЭрд▓рдХ рдорд┐рд▓рддреА рд╣реИред
рдХреЛрдб ред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ: рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рдЙрд╕реА рдЬрдЧрд╣ рд╣реЛрддреА рд╣реИ рдЬрд╣рд╛рдВ рдкреГрд╖реНрда рдкрд░ рд╕реНрдХреНрд░реЙрд▓ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдлрд╛рд░реА рдореЗрдВ рдРрд╕реА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред
рдПрдиреАрдореЗрд╢рди рд╕рдорд╕реНрдпрд╛ (Gif) рдПрдирдкреАрдПрдо рдУрдкрди рд╕реНрдкреЗрд╕ рдореЗрдВ рдХреБрдЫ рд╕рдорд╛рдзрд╛рди рд╕реНрдХреНрд░реЙрд▓ рдХреЛ рдПрдХ рдЗрдВрдбреЗрдВрдЯ рдпрд╛ рдмреНрд▓реЙрдХ рдХреЗ рд╕рд╛рде рдмрджрд▓рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╕реНрдХреНрд░реЙрд▓ (рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЧреНрд░реЗ рдмрд╛рд░) рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЬрд╛рджреВ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо рдЖрд░рдВрднрд┐рдХ рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓ рджреЗрдВрдЧреЗ рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ:
.body { position:fixed; overflow-y: scroll; }
рдЕрдм рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╕рд╛рдордиреЗ рдЖрдИ рд╣реИ: рдкреГрд╖реНрда рдХреВрджрддрд╛ рд╣реИред
рдХреЛрдб ред Js рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд╛рдзрд╛рди рд╕рд░рд▓ рд╣реИ: рдкреГрд╖реНрда рдХреЛ рдЦреЛрд▓рддреЗ рд╕рдордп, рд╣рдо рдЙрд╕ рдорд╛рди рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ рдЬреЛ рдкреГрд╖реНрда рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдорд╛рди рдХреЛ <body>
рдХреЛрдб рдЯреИрдЧ рдХреА
рд╢реАрд░реНрд╖ рд╕рдВрдкрддреНрддрд┐ рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
function getBodyScrollTop() { return self.pageYOffset || (document.documentElement && document.documentElement.ScrollTop) || (document.body && document.body.scrollTop); } openModalButton.addEventListener('click', e => { e.preventDefault() body.dataset.scrollY = getBodyScrollTop()
рдХрднреА-рдХрднреА рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рдРрд╕рд╛ рдкреГрд╖реНрда рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рд╛рдордЧреНрд░реА рд╣реЛ рдФрд░ рдХреЛрдИ рд╕реНрдХреНрд░реЙрд▓ рди рд╣реЛ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдПрдХ рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░рд╛ рдХреЛрдб рдЗрд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╕реНрдХреНрд░реЙрд▓ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рддреИрдпрд╛рд░ рдШреЛрд▓ ред
function existVerticalScroll() { return document.body.offsetHeight > window.innerHeight } openModalButton.addEventListener('click', e => { e.preventDefault() body.dataset.scrollY = getBodyScrollTop() modal.classList.add('modal--open') if(existVerticalScroll()) {
рдЙрдкрд▓рдмреНрдзрддрд╛
рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ рдХреЗ рдмрд╛рд╣рд░ рдПрдХ рдЯреИрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдЖрдВрджреЛрд▓рди рд╣реЛрдЧрд╛ред Gif рдкрд░, рдмрд╕
рдЯреИрдм рдХреЛ рдХреБрдЫ рдмрд╛рд░ рд╣рд┐рдЯ рдХрд░реЗрдВред
рдПрдиреАрдореЗрд╢рди рд╕рдорд╕реНрдпрд╛ (Gif) рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХреЛрдИ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рдФрд░
рдлреЛрдХрд╕-рдЯреНрд░реИрдк.рдЬреЗрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реЛрдиреЗ рдкрд░ рдЕрдкрдиреА
рдмреИрд╕рд╛рдЦреА рдмрд╛рдЗрдХ рд▓рд┐рдЦрдирд╛ рдмрд╣реБрдд рддрд░реНрдХрд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИред
рдпрд╣рд╛рдБ, рд▓реЗрдЦрдХ рдиреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдЙрдирдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╡рд┐рд╖рдп рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдпрд╛ ред
рдкрд░рд┐рдгрд╛рдо
рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдкреГрд╖реНрда рдкрд░ рдХрдИ рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕рднреА рдХреЛрдб рдХреЛ рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ рдХрд╛ рд╡рд░реНрдЧ рдирд╛рдо рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
function initModal(className) {
рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реНрдкрд╖реНрдЯ рдХреНрд╖рдг рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЛ рдмреЗрд╣рддрд░ рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред
рддреИрдпрд╛рд░ рдХреЛрдбрдЙрдкрдпреЛрдЧреА рд╕рд╛рдордЧреНрд░реА