рд╕реАрдПрд╕рдПрд╕ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рд░рд▓ рдЫрд╡рд┐ рд╕реНрд▓рд╛рдЗрдбрд░

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

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

рд╕реНрд▓рд╛рдЗрдбрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╕реНрдХреНрд░реАрди рдЪреМрдбрд╝рд╛рдИ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдпрд╛ рджрд╛рдИрдВ рдУрд░ рд▓реЗ рдЬрд╛рдХрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЫрд╡рд┐

HTML - рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЛрдб рдорд╛рдирдХ рд╣реИ, рдПрдХ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде: рдПрдХ рд╕реНрдХреНрд░реАрди рдХреЛ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рдордиреЗ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╕рд╛рджреЗ рд╕рдлреЗрдж рддрд╕реНрд╡реАрд░ рд╣реИред рд╕рднреА рдЫрд╡рд┐рдпреЛрдВ рдФрд░ рд╕реНрдХреНрд░реАрди рдХрд╛ рдЖрдХрд╛рд░ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЫрд╡рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдордирдорд╛рдиреА рд╣реИред

<div class="sim-slider"> <ul class="sim-slider-list"> <li><img src="screen.gif" alt="screen"></li> <!--   --> <li class="sim-slider-element"><img src="img1.jpg" alt="1"></li> <li class="sim-slider-element"><img src="img2.jpg" alt="2"></li> тАж <li class="sim-slider-element"><img src="imgN.jpg" alt="N"></li> </ul> <div class="sim-slider-arrow-left"></div> <div class="sim-slider-arrow-right"></div> <div class="sim-slider-dots"></div> </div> 

<Ul> <li> рдЯреИрдЧ рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рдереЗ, рд▓реЗрдХрд┐рди рдЖрдк <div> <div> рдпрд╛ <div> <p> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреАрд░ рдФрд░ рд╕реВрдЪрдХ рдмрд┐рдВрджреБ рд╕рдВрдмрдВрдзрд┐рдд рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрдерд┐рдд рд╣реИрдВред рддреАрд░реЛрдВ рдХреЗ рд▓рд┐рдП, рддреНрд░рд┐рдХреЛрдгреАрдп рдХреЛрд╖реНрдардХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рде рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдВрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ, рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЫрд╡рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддреА рд╣реИред

рд╕рднреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕реНрдЯреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдХреЗ рдКрдкрд░ рдПрдХ, рд╕рдВрд▓рдЧреНрди рдХрдВрдЯреЗрдирд░ рдХреЗ рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдкреВрд░реНрдг рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рдеред рд╕реНрдХреНрд░реАрди рдмрд╛рд╣рд░реА рдХрдВрдЯреЗрдирд░ рдХреЗ рдкрддрди рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред рд╕рднреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдкрддреНрддрд┐ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: 0, рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрд░рдВрднреАрдХрд░рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: 1, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред

рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рддрддреНрд╡реЛрдВ рдХреЛ рд╕реБрд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреГрд╢реНрдп рддрддреНрд╡ рдХреЗ рд▓рд┐рдП 1 рд╕реЗ 0 рддрдХ рдФрд░ рдЕрдЧрд▓реЗ рдЕрджреГрд╢реНрдп рддрддреНрд╡ рдХреЗ рд▓рд┐рдП 0 рд╕реЗ 1 рддрдХ рдмрджрд▓рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рджреГрд╢реНрдп рддрддреНрд╡ рдЕрджреГрд╢реНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрджреГрд╢реНрдп рджреГрд╢реНрдп рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рд╕рдВрдХреНрд░рдордг рд╕реБрдЧрдорддрд╛ 1s рдХреА рдЕрд╡рдзрд┐ рдФрд░ рдПрдХ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрдХреНрд░рдордг рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдХреНрд░рдордг рдЧреБрдг рдмрдирд╛рддрд╛ рд╣реИред

рд╕реАрдПрд╕рдПрд╕
 img { width: 100%; !important; } /* General styles */ .sim-slider { position: relative; } .sim-slider-list { margin: 0; padding: 0; list-style-type: none; position: relative; } .sim-slider-element { width: 100%; transition: opacity 1s ease-in; opacity: 0; position: absolute; z-index: 2; left: 0; top: 0; display: block; } /* Navigation item styles */ div.sim-slider-arrow-left, div.sim-slider-arrow-right { width: 22px; height: 40px; position: absolute; cursor: pointer; opacity: 0.6; z-index: 4; } div.sim-slider-arrow-left { left: 10px; top: 40%; display: block; background: url("sim-arrow-left.png") no-repeat; } div.sim-slider-arrow-right { right: 10px; top: 40%; display: block; background: url("sim-arrow-right.png") no-repeat; } div.sim-slider-arrow-left:hover { opacity: 1.0; } div.sim-slider-arrow-right:hover { opacity: 1.0; } div.sim-slider-dots { width: 100%; height: auto; position: absolute; left: 0; bottom: 0; z-index: 3; text-align: center; } span.sim-dot { width: 10px; height: 10px; margin: 5px 7px; padding: 0; display: inline-block; background-color: #BBB; border-radius: 5px; cursor: pointer; } 


рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕реНрдХреНрд░реАрди рдЪреМрдбрд╝рд╛рдИ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреА рдЪреМрдбрд╝рд╛рдИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: 100%ред рд╕рднреА рдмреНрд▓реЙрдХ рдХрдВрдЯреЗрдирд░реЛрдВ (div, ul, li, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рднреА рдЪреМрдбрд╝рд╛рдИ: 100% рдпрд╛, рдпрджрд┐ рдЖрдкрдХреЛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ рдЪреМрдбрд╝рд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рдЕрдзрд┐рдХрддрдо-рдЪреМрдбрд╝рд╛рдИ рдпрд╛ рдиреНрдпреВрдирддрдо-рдЪреМрдбрд╝рд╛рдИред

рд╢реИрд▓рд┐рдпрд╛рдБ, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╣реЗрдбрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдУрдирд▓реЛрдб рдШрдЯрдирд╛ рдпрд╛ HTML рдорд╛рд░реНрдХрдЕрдк рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реНрд▓рд╛рдЗрдбрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ:

 <!DOCTYPE html> <html lang="ru"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width; initial-scale=1.0"> <title>Simple slider</title> <!--   --> <link rel="stylesheet" type="text/css" href="sim-slider-styles.css"> </head> <body> тАж <div class="sim-slider"> <!--    --> тАж </div> тАж <footer> тАж </footer> <!--   --> <script src="sim-slider.js"></script> <!--   --> <script>new Sim()</script> </body> </html> 

рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЛ рд╕рд┐рдо-рд╕реНрд▓рд╛рдЗрдбрд░ рд╡рд░реНрдЧ рдпрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рдирд╛рдо рд╕реЗ рдкреБрдХрд╛рд░рд╛ рдЬрд╛рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдПрдХ рдкреГрд╖реНрда рдкрд░ рдХрдИ рд╕реНрд▓рд╛рдЗрдбрд░реНрд╕ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред

 <div class="sim-slider" id="first"> <!--   --> тАж <div class="sim-slider" id="second"> <!--   --> тАж <script>new Sim("first"); new Sim("second");</script> 


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ
 function Sim(sldrId) { let id = document.getElementById(sldrId); if(id) { this.sldrRoot = id } else { this.sldrRoot = document.querySelector('.sim-slider') }; // Slider objects this.sldrList = this.sldrRoot.querySelector('.sim-slider-list'); this.sldrElements = this.sldrList.querySelectorAll('.sim-slider-element'); this.sldrElemFirst = this.sldrList.querySelector('.sim-slider-element'); this.leftArrow = this.sldrRoot.querySelector('div.sim-slider-arrow-left'); this.rightArrow = this.sldrRoot.querySelector('div.sim-slider-arrow-right'); this.indicatorDots = this.sldrRoot.querySelector('div.sim-slider-dots'); // Initialization this.options = Sim.defaults; Sim.initialize(this) }; Sim.defaults = { // Default options for the slider loop: true, //    auto: true, //   interval: 5000, //     () arrows: true, //   dots: true //   }; Sim.prototype.elemPrev = function(num) { num = num || 1; let prevElement = this.currentElement; this.currentElement -= num; if(this.currentElement < 0) this.currentElement = this.elemCount-1; if(!this.options.loop) { if(this.currentElement == 0) { this.leftArrow.style.display = 'none' }; this.rightArrow.style.display = 'block' }; this.sldrElements[this.currentElement].style.opacity = '1'; this.sldrElements[prevElement].style.opacity = '0'; if(this.options.dots) { this.dotOn(prevElement); this.dotOff(this.currentElement) } }; Sim.prototype.elemNext = function(num) { num = num || 1; let prevElement = this.currentElement; this.currentElement += num; if(this.currentElement >= this.elemCount) this.currentElement = 0; if(!this.options.loop) { if(this.currentElement == this.elemCount-1) { this.rightArrow.style.display = 'none' }; this.leftArrow.style.display = 'block' }; this.sldrElements[this.currentElement].style.opacity = '1'; this.sldrElements[prevElement].style.opacity = '0'; if(this.options.dots) { this.dotOn(prevElement); this.dotOff(this.currentElement) } }; Sim.prototype.dotOn = function(num) { this.indicatorDotsAll[num].style.cssText = 'background-color:#BBB; cursor:pointer;' }; Sim.prototype.dotOff = function(num) { this.indicatorDotsAll[num].style.cssText = 'background-color:#556; cursor:default;' }; Sim.initialize = function(that) { // Constants that.elemCount = that.sldrElements.length; //   // Variables that.currentElement = 0; let bgTime = getTime(); // Functions function getTime() { return new Date().getTime(); }; function setAutoScroll() { that.autoScroll = setInterval(function() { let fnTime = getTime(); if(fnTime - bgTime + 10 > that.options.interval) { bgTime = fnTime; that.elemNext() } }, that.options.interval) }; // Start initialization if(that.elemCount <= 1) { //   that.options.auto = false; that.options.arrows = false; that.options.dots = false; that.leftArrow.style.display = 'none'; that.rightArrow.style.display = 'none' }; if(that.elemCount >= 1) { //    that.sldrElemFirst.style.opacity = '1'; }; if(!that.options.loop) { that.leftArrow.style.display = 'none'; //    that.options.auto = false; //   } else if(that.options.auto) { //   setAutoScroll(); //        that.sldrList.addEventListener('mouseenter', function() { clearInterval(that.autoScroll) }, false); that.sldrList.addEventListener('mouseleave', setAutoScroll, false) }; if(that.options.arrows) { //   that.leftArrow.addEventListener('click', function() { let fnTime = getTime(); if(fnTime - bgTime > 1000) { bgTime = fnTime; that.elemPrev() } }, false); that.rightArrow.addEventListener('click', function() { let fnTime = getTime(); if(fnTime - bgTime > 1000) { bgTime = fnTime; that.elemNext() } }, false) } else { that.leftArrow.style.display = 'none'; that.rightArrow.style.display = 'none' }; if(that.options.dots) { //    let sum = '', diffNum; for(let i=0; i<that.elemCount; i++) { sum += '<span class="sim-dot"></span>' }; that.indicatorDots.innerHTML = sum; that.indicatorDotsAll = that.sldrRoot.querySelectorAll('span.sim-dot'); //     'click' for(let n=0; n<that.elemCount; n++) { that.indicatorDotsAll[n].addEventListener('click', function(){ diffNum = Math.abs(n - that.currentElement); if(n < that.currentElement) { bgTime = getTime(); that.elemPrev(diffNum) } else if(n > that.currentElement) { bgTime = getTime(); that.elemNext(diffNum) } //  n == that.currentElement    }, false) }; that.dotOff(0); // [0] ,   for(let i=1; i<that.elemCount; i++) { that.dotOn(i) } } }; 



рд╕рднреА рдЪрд┐рддреНрд░ рдЦреБрд▓реЗ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рд▓рд┐рдП рдЧрдП рд╣реИрдВред

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

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


All Articles