diff --git a/index.html b/index.html index 456ca8a..9da2d52 100644 --- a/index.html +++ b/index.html @@ -257,7 +257,7 @@
Ссылочное продвижение
-
+
Техническая оптимизация
diff --git a/main.js b/main.js index f3322c8..2f4fb68 100644 --- a/main.js +++ b/main.js @@ -60,6 +60,60 @@ document.addEventListener('DOMContentLoaded', () => { }); }); +document.addEventListener('DOMContentLoaded', () => { + const sliderContainer = document.querySelector('.advantage_slider'); + const slider = document.querySelector('.advantage_slider_items'); + const slides = document.querySelectorAll('.advantage_slider_item'); + let currentIndex = 0; + let dotsContainer, dots; + + function initSlider() { + // если ширина > 900 — отключаем слайдер + if (window.innerWidth > 900) { + slider.style.transform = ''; + if (dotsContainer) dotsContainer.remove(); + return; + } + + // создаём точки только если их ещё нет + if (!dotsContainer) { + dotsContainer = document.createElement('div'); + dotsContainer.classList.add('slider_dots'); + slides.forEach((_, i) => { + const dot = document.createElement('div'); + dot.classList.add('slider_dot'); + if (i === 0) dot.classList.add('active'); + dot.addEventListener('click', () => moveToSlide(i)); + dotsContainer.appendChild(dot); + }); + sliderContainer.appendChild(dotsContainer); + dots = dotsContainer.querySelectorAll('.slider_dot'); + } + + moveToSlide(0); // начальная позиция + } + + function moveToSlide(index) { + if (window.innerWidth > 900) return; // не сдвигать если десктоп + if (index < 0) index = slides.length - 1; + if (index >= slides.length) index = 0; + currentIndex = index; + const slideWidth = slides[0].offsetWidth + 28; // с учётом gap + slider.style.transform = `translateX(-${index * slideWidth}px)`; + updateDots(); + } + + function updateDots() { + if (!dots) return; + dots.forEach((dot, i) => dot.classList.toggle('active', i === currentIndex)); + } + + // пересоздаём слайдер при изменении ширины + window.addEventListener('resize', initSlider); + + initSlider(); // запустить при загрузке +}); + // ----------------------------------------------------------ВЫПАДАЮЩЕЕ-МЕНЮ-------------------------------------------------------- document.querySelector('.header_nav_link-reverse').addEventListener('click', function() { @@ -108,4 +162,62 @@ document.addEventListener("DOMContentLoaded", () => { toggleBtn.addEventListener("click", () => { menu.classList.toggle("open"); }); +}); + +// ---------------------------------------------SLIDER---------------------------------------------------- + +document.addEventListener('DOMContentLoaded', () => { + const servicesContainer = document.querySelector('.our-services_row'); + const slider = document.querySelector('.our-services_row_items'); + const slides = document.querySelectorAll('.our-services_row_item'); + let currentIndex = 0; + let dotsContainer, dots; + let isActive = false; + + function initServicesSlider() { + if (window.innerWidth > 900) { + slider.style.transform = ''; + if (dotsContainer) { + dotsContainer.remove(); + dotsContainer = null; + } + isActive = false; + return; + } + + if (isActive) return; + isActive = true; + + // создаём контейнер для точек + dotsContainer = document.createElement('div'); + dotsContainer.classList.add('our-services_dots'); + slides.forEach((_, i) => { + const dot = document.createElement('div'); + dot.classList.add('our-services_dot'); + if (i === 0) dot.classList.add('active'); + dot.addEventListener('click', () => moveToSlide(i)); + dotsContainer.appendChild(dot); + }); + servicesContainer.appendChild(dotsContainer); + dots = dotsContainer.querySelectorAll('.our-services_dot'); + + moveToSlide(0); + } + + function moveToSlide(index) { + if (window.innerWidth > 900) return; + if (index < 0) index = slides.length - 1; + if (index >= slides.length) index = 0; + currentIndex = index; + const offset = index * servicesContainer.offsetWidth; + slider.style.transform = `translateX(-${offset}px)`; + updateDots(); + } + + function updateDots() { + dots.forEach((dot, i) => dot.classList.toggle('active', i === currentIndex)); + } + + window.addEventListener('resize', initServicesSlider); + initServicesSlider(); }); \ No newline at end of file diff --git a/style.css b/style.css index 0596a33..1ec45a9 100644 --- a/style.css +++ b/style.css @@ -858,6 +858,7 @@ html, body, * { border: 1px solid rgba(57, 57, 57, 0.5); } + /* -----------------------------------------------OUR-SERVICES-------------------------------------------------------------------------------------- */ .our-services { @@ -1425,7 +1426,9 @@ html, body, * { } -/* ---------------------------------------------------970!!!---------------------------------------------------------- */ +/* --------------------------------------------------MOBILE----------------------------------------------------------- */ + +/* ---------------------------------------------------970---------------------------------------------------------- */ @media (max-width: 970px) { .wrapper { @@ -1714,7 +1717,7 @@ body.lock { margin-bottom: 30px; } .footer_chart_content { - width: 71%; + width: 100%; } .header_nav_item { margin: 0; @@ -1730,5 +1733,515 @@ body.lock { border-radius: 33px; } +.footer_chart_img { + right: 19px; + top: 75px; +} +.chart_img { + width: 215px; + height: 150px; +} +.our-services_row_item { + padding: 15px 10px; +} +.our-services_row_items { + gap: 15px; +} +.our-services_item_01 svg { + padding: 5px; +} +.item_index_color { + font-size: 65px; +} +.footer_cont_heading { + font-size: 44px; +} +.footer_cont_info { + font-size: 18px; +} +.chart_cont_title { + font-size: 18px; +} +} + +/* ----------------------------------------------------900---------------------------------------------------------- */ + +@media (max-width: 900px) { + .wrapper { + max-width: 900px; +} +.row_container_item { + font-size: 14px; +} +.slider_row_title { + font-size: 15px; +} +.header_body_top { + flex-direction: column; + gap: 30px; +} +.header_body_about { + margin: 0; + max-width: 50%; + margin-left: 350px; +} +.header_about_text { + font-size: 20px; +} +.header_body_about span { + font-size: 20px; +} +.header_about_img { + margin: 8px 0; + width: 25px; + height: 25px; +} + +/* ---------------------------------------------------------------------------------------------------------- */ + +.advantage_slider { + width: 100%; + position: relative; + } + + .advantage_slider_items { + width: 100%; + display: flex; + } + + .advantage_slider_item { + width: 342px; + height: 518px; + flex: 0 0 100%; + max-width: 100%; + border-radius: 30px; + } + .advantage_slider_item:hover { + transform: none; + } + .slider_item_wrapper { + width: 100%; + margin: 0; + } +.advantage_slider_close { + padding: 60px; +} + .slider_dots { + position: absolute; + bottom: 10px; + left: 50%; + transform: translateX(-50%); + display: flex; + gap: 10px; + z-index: 10; + } + + .slider_dot { + width: 20px; + height: 20px; + border-radius: 50%; + background: #ccc; + transition: background 0.3s ease, transform 0.3s ease; + cursor: pointer; + } + + .slider_dot.active { + background: #0C47A0; + } +.slider_item_title { + font-size: 50px; +} +.advantage_slider_item.active .slider_item_title-reverse { + font-size: 50px; + } +.slider_item_index { + width: 85px; + height: 85px; + font-size: 30px; + border: 2px solid #fff; +} +.advantage_slider_open { + padding: 60px; +} +.advantage_slider_item.active .slider_item_index { + border: 2px solid #939393; +} +.advantage_slider_item.active .item_inner_text { + font-size: 24px; +} +.slider_item_index-reverse { + border: 2px solid #939393; +} +/* -------------------------------------------------------------------------- */ +.advantage { + flex-direction: column; + gap: 40px; +} +.advantage_content { + width: 100%; +} +.row_info_list { + flex-direction: row; + gap: 30px; + flex-wrap: wrap; +} +.row_info_item { + width: 40%; + margin-right: 0px; + height: 200px; +} +.row_info_area { + margin-right: 20px; + padding: 15px; +} +.row_info_area svg { + width: 28px; + height: 28px; +} +.info_content_first { + font-size: 20px; +} +.info_content_second { + font-size: 30px; +} +.header_row_info { + margin-bottom: 40px; +} +.info_list_item { + padding: 0; +} +.advantage_slider { + margin-bottom: 40px; +} +.info_heading_title { + font-size: 42px; +} +.heading_title_sub { + font-size: 24px; +} +.adv_cont_01, +.adv_cont_02 { + font-size: 20px; +} + +/* ---------------------------------------------------------------------------------- */ + + .our-services_row { + position: relative; + overflow: hidden; + padding-bottom: 60px; + } + + .our-services_row_items { + display: flex; + transition: transform 0.5s ease; + gap: 0; + width: 125%; + } + + .our-services_row_item { + flex: 0 0 100%; + max-width: 100%; + border-radius: 24px; + } + + /* точки */ + .our-services_dots { + position: absolute; + bottom: 10px; + left: 50%; + transform: translateX(-50%); + display: flex; + gap: 10px; + z-index: 5; + } + + .our-services_dot { + width: 20px; + height: 20px; + border-radius: 50%; + background: #ccc; + transition: background 0.3s ease, transform 0.3s ease; + cursor: pointer; + } + + .our-services_dot.active { + background: #0C47A0; + } + .our-services_item_01 svg { + padding: 0; + width: 80px; + height: 80px; + } +.our-services_row_item { + padding: 40px; + max-width: 80%; +} +.item_link { + font-size: 20px; +} +.our-services_item_title { + font-size: 36px; +} +.our-services_bottom_index { + font-size: 120px; +} +.item_link_svg svg { + width: 26px; + height: 26px; +} +.footer_cont_heading { + font-size: 40px; +} +.item_index_color { + font-size: 60px; +} +.time_item_interval { + font-size: 14px; +} +.footer { + height: 480px; +} +.footer_chart { + width: 400px; +} + +} + +/* -----------------------------------------------800--------------------------------------------------------------------- */ + +@media (max-width: 800px) { + .wrapper { + max-width: 800px; +} +.header_body_about { + margin-left: 250px; + min-width: 59%; +} +.row_container_area-empty { + display: none; +} +.slider_row_container { + width: 100%; +} +.row_middle_text { + font-size: 20px; +} +.row_middle_title { + font-size: 28px; +} +.wrapper_row_btn { + padding: 8px; + font-size: 14px; +} +.accordion-item { + flex: 2; +} +.row_info_item { + height: 180px; +} +.advantage_slider_item.active .item_inner_text { + font-size: 22px; +} +.slider_item_title { + font-size: 40px; +} +.advantage_slider_item.active .slider_item_title-reverse { + font-size: 40px; +} +.header_nav_link { + width: 380px; +} +.footer { + flex-direction: column; + height: max-content; + gap: 30px; +} +.item_index_color { + font-size: 100px; +} +.footer_cont_heading { + font-size: 48px; +} +.time_item_interval { + font-size: 16px; +} +.footer_cont_info { + font-size: 22px; +} +.footer_cont_info { + margin-bottom: 30px; +} +.footer_cont_time { + margin-bottom: 30px; +} +.footer_chart_img { + right: 62px; + top: 55px; +} +.chart_img { + width: 260px; + height: 170px; +} +.footer_chart_content { + width: 65%; +} +.footer_chart { + padding: 30px; +} + +} + +/* ---------------------------------------------------700----------------------------------------------------------------------- */ +@media (max-width: 700px) { + .wrapper { + max-width: 700px; +} +.header_nav_link { + width: 320px; +} +.header_body_about { + margin-left: 190px; + min-width: 70%; +} +.header_body_heading { + margin-right: 0; +} +.slider_row_container { + width: 85%; +} +.row_container_area-empty { + display: block; +} +.row_container_area-reverse { + display: none; +} +.slider_row_title { + font-size: 14px; +} +.slider_row_index { + font-size: 25px; +} +.item_wrapper_index { + font-size: 25px; +} +.accordion_index { + font-size: 25px; +} +.accordion-item { + flex: 3; +} +.row_middle_title { + font-size: 22px; +} +.row_middle_text { + font-size: 16px; +} +.item_wrapper_icon { + padding: 20px; +} +.accordion_title { + font-size: 18px; +} +.accordion_title { + margin-bottom: 70px; +} +.row_info_heading { + align-items: start; +} +.info_heading_title { + margin: 0; + width: 60%; + margin-bottom: 25px; +} +.row_info_item { + height: 120px; +} +.row_info_item { + margin: 0; + margin-right: 0; + width: 46%; +} +.row_info_list { + padding: 0; +} +.our-services_heading { + flex-direction: column; + align-items: start; +} +.our-services_heading_text { + width: 100%; +} +.item_index_color { + font-size: 80px; +} +.footer_cont_heading { + font-size: 42px; +} + +} + +/* ----------------------------------------------------600---------------------------------------------------------------- */ + +@media (max-width: 600px) { + .wrapper { + max-width: 600px; +} +.header_nav_link { + width: 280px; + } +.accordion_index { + font-size: 15px; + } +.slider_row_index { + font-size: 15px; + } +.item_wrapper_index { + font-size: 15px; + } +.accordion_title { + font-size: 14px; + } +.accordion_title { + margin-bottom: 80px; + } +.item_wrapper_icon { + padding: 15px; + } +.slider_item_index { + width: 65px; + height: 65px; + font-size: 25px; +} + .advantage_slider_item.active .item_inner_text { + font-size: 18px; + } + .slider_item_title { + font-size: 32px; + } +.advantage_slider_item.active .slider_item_title-reverse { + font-size: 32px; + } +.our-services_row_items { + height: 380px; + } + .footer_cont_heading { + font-size: 35px; + } +.item_index_color { + font-size: 60px; + } +.footer_cont_info { + font-size: 20px; + width: 100%; + } +.info_heading_title { + width: 65%; +} +.header_body_about { + min-width: 65%; +} + + } \ No newline at end of file