1"use strict"; 2function MyRound10(val) { 3 return Math.round(val / 10) * 10; 4} 5const JSCCommon = { 6 7 btnToggleMenuMobile: [].slice.call(document.querySelectorAll(".toggle-menu-mobile--js")), 8 menuMobile: document.querySelector(".menu-mobile--js"), 9 menuMobileLink: [].slice.call(document.querySelectorAll(".menu-mobile--js ul li a")), 10 11 modalCall() { 12 const link = ".link-modal-js"; 13 14 Fancybox.bind(link, { 15 arrows: false, 16 infobar: false, 17 touch: false, 18 infinite: false, 19 dragToClose: false, 20 type: 'inline', 21 autoFocus: false, 22 l10n: { 23 Escape: "ÐакÑÑÑÑ", 24 NEXT: "ÐпеÑед", 25 PREV: "Ðазад", 26 }, 27 }); 28 document.querySelectorAll(".modal-close-js").forEach(el => { 29 el.addEventListener("click", () => { 30 Fancybox.close(); 31 }) 32 }) 33 Fancybox.bind('[data-fancybox]', { 34 placeFocusBack: false, 35 }); 36 37 const linkModal = document.querySelectorAll(link); 38 function addData() { 39 linkModal.forEach(element => { 40 element.addEventListener('click', () => { 41 let modal = document.querySelector(element.getAttribute("href")); 42 const data = element.dataset; 43 44 function setValue(val, elem) { 45 if (elem && val) { 46 const el = modal.querySelector(elem) 47 el.tagName == "INPUT" 48 ? el.value = val 49 : el.innerHTML = val; 50 // console.log(modal.querySelector(elem).tagName) 51 } 52 } 53 setValue(data.title, '.ttu'); 54 setValue(data.text, '.after-headline'); 55 setValue(data.btn, '.btn'); 56 setValue(data.order, '.order'); 57 }) 58 }) 59 } 60 if (linkModal) addData(); 61 }, 62 // /modalCall 63 toggleMenu() { 64 const toggle = this.btnToggleMenuMobile; 65 const menu = this.menuMobile; 66 document.addEventListener("click", function (event) { 67 const toggleEv = event.target.closest(".toggle-menu-mobile--js"); 68 if (!toggleEv) return; 69 toggle.forEach(el => el.classList.toggle("on")); 70 menu.classList.toggle("active"); 71 [document.body, document.querySelector('html')].forEach(el => el.classList.toggle("fixed")); 72 }, { passive: true }); 73 }, 74 closeMenu() { 75 let menu = this.menuMobile; 76 if (!menu) return; 77 if (menu.classList.contains("active")) { 78 this.btnToggleMenuMobile.forEach(element => element.classList.remove("on")); 79 this.menuMobile.classList.remove("active"); 80 [document.body, document.querySelector('html')].forEach(el => el.classList.remove("fixed")); 81 } 82 83 }, 84 mobileMenu() { 85 if (!this.menuMobileLink) return; 86 this.toggleMenu(); 87 document.addEventListener('mouseup', (event) => { 88 let container = event.target.closest(".menu-mobile--js.active"); // (1) 89 let link = event.target.closest(".menu-mobile .menu a"); // (1) 90 let toggle = event.target.closest('.toggle-menu-mobile--js.on'); // (1) 91 if (!container && !toggle) this.closeMenu(); 92 }, { passive: true }); 93 94 window.addEventListener('resize', () => { 95 if (window.matchMedia("(min-width: 992px)").matches) this.closeMenu(); 96 }, { passive: true }); 97 }, 98 // /mobileMenu 99 100 // tabs . 101 tabscostume(tab) { 102 // const tabs = document.querySelectorAll(tab); 103 // const indexOf = element => Array.from(element.parentNode.children).indexOf(element); 104 // tabs.forEach(element => { 105 // let tabs = element; 106 // const tabsCaption = tabs.querySelector(".tabs__caption"); 107 // const tabsBtn = tabsCaption.querySelectorAll(".tabs__btn"); 108 // const tabsWrap = tabs.querySelector(".tabs__wrap"); 109 // const tabsContent = tabsWrap.querySelectorAll(".tabs__content"); 110 // const random = Math.trunc(Math.random() * 1000); 111 // tabsBtn.forEach((el, index) => { 112 // const data = `tab-content-${random}-${index}`; 113 // el.dataset.tabBtn = data; 114 // const content = tabsContent[index]; 115 // content.dataset.tabContent = data; 116 // if (!content.dataset.tabContent == data) return; 117 118 // const active = content.classList.contains('active') ? 'active' : ''; 119 // // console.log(el.innerHTML); 120 // content.insertAdjacentHTML("beforebegin", `<div class="tabs__btn-accordion btn btn-primary mb-1 ${active}" data-tab-btn="${data}">${el.innerHTML}</div>`) 121 // }) 122 123 124 // tabs.addEventListener('click', function (element) { 125 // const btn = element.target.closest(`[data-tab-btn]:not(.active)`); 126 // if (!btn) return; 127 // const data = btn.dataset.tabBtn; 128 // const tabsAllBtn = this.querySelectorAll(`[data-tab-btn`); 129 // const content = this.querySelectorAll(`[data-tab-content]`);
130 // tabsAllBtn.forEach(element => { 131 // element.dataset.tabBtn == data 132 // ? element.classList.add('active') 133 // : element.classList.remove('active') 134 // }); 135 // content.forEach(element => { 136 // element.dataset.tabContent == data 137 // ? (element.classList.add('active'), element.previousSibling.classList.add('active')) 138 // : element.classList.remove('active') 139 // }); 140 // }) 141 // }) 142 143 $('.' + tab + '__caption').on('click', '.' + tab + '__btn:not(.active)', function (e) { 144 $(this) 145 .addClass('active').siblings().removeClass('active') 146 .closest('.' + tab).find('.' + tab + '__content').hide().removeClass('active') 147 .eq($(this).index()).fadeIn().addClass('active'); 148 149 }); 150 151 }, 152 // /tabs 153 154 inputMask() { 155 // mask for input 156 let InputTel = [].slice.call(document.querySelectorAll('input[type="tel"]')); 157 InputTel.forEach(element => element.setAttribute("pattern", "[+][0-9]{1}[(][0-9]{3}[)][0-9]{3}-[0-9]{2}-[0-9]{2}")); 158 159 let InputEmail = [].slice.call(document.querySelectorAll('input[type="email"]')); 160 InputEmail.forEach(element => element.setAttribute("pattern", "[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$")); 161 162 Inputmask("email").mask(InputEmail); 163 Inputmask("+7(999)999-99-99").mask(InputTel); 164 165 166 }, 167 // /inputMask 168 ifie() { 169 var isIE11 = !!window.MSInputMethodContext && !!document.documentMode; 170 if (isIE11) { 171 document.body.insertAdjacentHTML("beforeend", '<div class="browsehappy"> <p class=" container">Ð ÑожалениÑ, Ð²Ñ Ð¸ÑполÑзÑеÑе ÑÑÑаÑевÑий бÑаÑзеÑ. ÐожалÑйÑÑа, <a href="http://browsehappy.com/" target="_blank">обновиÑе Ð²Ð°Ñ Ð±ÑаÑзеÑ</a>, ÑÑÐ¾Ð±Ñ ÑлÑÑÑиÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ, каÑеÑÑво оÑобÑажаемого маÑеÑиала и повÑÑиÑÑ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑÑ.</p></div>'); 172 } 173 }, 174 heightwindow() { 175 // First we get the viewport height and we multiple it by 1% to get a value for a vh unit 176 let vh = window.innerHeight * 0.01; 177 // Then we set the value in the --vh custom property to the root of the document 178 document.documentElement.style.setProperty('--vh', `${vh}px`); 179 180 // We listen to the resize event 181 window.addEventListener('resize', () => { 182 // We execute the same script as before 183 let vh = window.innerHeight * 0.01; 184 document.documentElement.style.setProperty('--vh', `${vh}px`); 185 }, { passive: true }); 186 }, 187 animateScroll() { 188 $(document).on('click', " .menu li a, .scroll-link", function () { 189 const elementClick = $(this).attr("href"); 190 if (!document.querySelector(elementClick)) { 191 $(this).attr("href", '/' + elementClick) 192 } 193 else { 194 let destination = $(elementClick).offset().top; 195 $('html, body').animate({ scrollTop: destination - 80 }, 0); 196 return false; 197 } 198 }); 199 }, 200 getCurrentYear(el) { 201 let now = new Date(); 202 let currentYear = document.querySelector(el); 203 if (currentYear) currentYear.innerText = now.getFullYear(); 204 }, 205 toggleShow(toggle, drop) { 206 207 let catalogDrop = drop; 208 let catalogToggle = toggle; 209 210 $(document).on('click', catalogToggle, function () { 211 $(this).toggleClass('active').next().fadeToggle('fast', function () { 212 $(this).toggleClass("active") 213 }); 214 }) 215 216 document.addEventListener('mouseup', (event) => { 217 let container = event.target.closest(catalogDrop + ".active"); // (1) 218 let link = event.target.closest(catalogToggle); // (1) 219 if (!container || !catalogToggle) { 220 $(catalogDrop).removeClass('active').fadeOut(); 221 $(catalogToggle).removeClass('active'); 222 }; 223 }, { passive: true }); 224 }, 225 makeDDGroup() { 226 let parents = document.querySelectorAll('.dd-group-js'); 227 for (let parent of parents) { 228 if (parent) { 229 // childHeads, kind of funny)) 230 let ChildHeads = parent.querySelectorAll('.dd-head-js:not(.disabled)'); 231 $(ChildHeads).click(function () { 232 let clickedHead = this; 233 234 $(ChildHeads).each(function () { 235 if (this === clickedHead) { 236 //parent element gain toggle class, style head change via parent 237 $(this.parentElement).toggleClass('active') 238 .find('.dd-content-js').slideToggle(function () { 239 $(this).toggleClass('active'); 240 }); 241 } 242 // else { 243 // $(this.parentElement).removeClass('active');
244 // $(this.parentElement).find('.dd-content-js').slideUp(function () { 245 // $(this).removeClass('active'); 246 // }); 247 // } 248 }); 249 250 }); 251 } 252 } 253 }, 254 255 customRange() { 256 257 $(".qwiz-range").ionRangeSlider({ 258 skin: "round", 259 grid: false, 260 grid_snap: false, 261 hide_min_max: true, 262 // hide_from_to: true, 263 max_postfix: "+", 264 postfix: " мм", // fix 31.07.2026: ÑÐ»Ð°Ð¹Ð´ÐµÑ .qwiz-range = ТÐÐЩÐÐÐ ÐºÐ°Ð¼Ð½Ñ (мм), не плоÑÐ°Ð´Ñ 265 // min: 0, 266 // max: 100, 267 // step: 5, 268 }); 269 $(".range-wrap").each(function () { 270 var _this = $(this); 271 272 var $range = _this.find(".slider-js"); 273 274 var $inputFrom = _this.find(".input_from"); 275 276 var $inputTo = _this.find(".input_to"); 277 278 var instance, 279 step = 10, 280 from, 281 to, 282 min = $range.data('min'), 283 max = $range.data('max'); 284 $range.ionRangeSlider({ 285 skin: "round", 286 type: "double", 287 grid: false, 288 grid_snap: false, 289 hide_min_max: true, 290 hide_from_to: true, 291 onStart: updateInputs, 292 onChange: updateInputs, 293 onFinish: updateInputs 294 }); 295 instance = $range.data("ionRangeSlider"); 296 297 function updateInputs(data) { 298 from = data.from; 299 to = data.to; 300 $inputFrom.prop("value", from); 301 $inputTo.prop("value", to); // InputFormat(); 302 } 303 304 $inputFrom.on("change input ", function () { 305 var val = +$(this).prop("value").replace(/\s/g, ''); // validate 306 307 if (val < min) { 308 val = min; 309 } else if (val > to) { 310 val = to; 311 } 312 313 instance.update({ 314 from: val 315 }); 316 $(this).prop("value", MyRound10(val)); 317 console.log(val); 318 }); 319 $inputTo.on("change input ", function () { 320 var val = +$(this).prop("value").replace(/\s/g, ''); // validate 321 322 if (val < from) { 323 val = from; 324 } else if (val > max) { 325 val = max; 326 } 327 328 instance.update({ 329 to: val 330 }); 331 $(this).prop("value", currencyFormat(MyRound10(val))); 332 }); 333 }); 334 } 335}; 336const $ = jQuery; 337 338function eventHandler() { 339 // JSCCommon.ifie(); 340 JSCCommon.modalCall(); 341 JSCCommon.tabscostume('tabs'); 342 JSCCommon.mobileMenu(); 343 JSCCommon.inputMask(); 344 JSCCommon.heightwindow(); 345 JSCCommon.customRange(); 346 JSCCommon.makeDDGroup(); 347 // JSCCommon.toggleShow(".catalog-block__toggle--desctop", '.catalog-block__dropdown'); 348 // JSCCommon.animateScroll(); 349 350 // JSCCommon.CustomInputFile(); 351 var x = window.location.host; 352 let screenName; 353 screenName = document.body.dataset.bg; 354 if (screenName && x.includes("localhost:30")) { 355 document.body.insertAdjacentHTML("beforeend", `<div class="pixel-perfect" style="background-image: url(screen/${screenName});"></div>`); 356 } 357 358 359 function setFixedNav() { 360 let topNav = document.querySelector('.top-nav '); 361 if (!topNav) return; 362 window.scrollY > 0 363 ? topNav.classList.add('fixed') 364 : topNav.classList.remove('fixed'); 365 } 366 367 function whenResize() { 368 setFixedNav(); 369 } 370 371 window.addEventListener('scroll', () => { 372 setFixedNav(); 373 374 }, { passive: true }) 375 window.addEventListener('resize', () => { 376 whenResize(); 377 }, { passive: true }); 378 379 whenResize(); 380 381 // $('.topLine__choose-city-btn').click(function(){ 382 // $(this).toggleClass('active'); 383 // $(this).next().toggleClass('show'); 384 // }); 385 // $('.catalog-toggle').click(function(){ 386 // $(this).toggleClass('active'); 387 // }); 388 // $('.topLine__top-nav-btn').click(function(){ 389 // $('body').toggleClass('fixed'); 390 // $('.top-nav').toggleClass('mob-menu'); 391 // }); //до ÑÑÑа 392 // $('.top-nav__catalog-close').click(function(){ 393 // $('body').toggleClass('fixed'); 394 // $('.top-nav').toggleClass('mob-menu'); 395 // }); //до ÑÑÑа 396 397 $('.sCatalog__show-more').click(function () { 398 $('.sCatalog__caption').toggleClass('sCatalog__caption--active'); 399 }); 400 $('.topLine__input').focus(function () { 401 $('.topLine__input-btn').toggleClass('topLine__input-btn--active'); 402 }); 403 $('.topLine__input').blur(function () { 404 $('.topLine__input-btn').toggleClass('topLine__input-btn--active'); 405 }); 406 $('.list-title--js').click(function () { 407 $(this).toggleClass('active'); 408 $(this).next().slideToggle(); 409 }); 410 let defaultSl = { 411 spaceBetween: 0, 412 lazy: { 413 loadPrevNext: true, 414 }, 415 watchOverflow: true, 416 spaceBetween: 0, 417 loop: true, 418 navigation: { 419 nextEl: '.swiper-button-next', 420 prevEl: '.swiper-button-prev', 421 }, 422 pagination: { 423 el: ' .swiper-pagination', 424 type: 'bullets', 425 clickable: true, 426 // renderBullet: function (index, className) { 427 // return '<span class="' + className + '">' + (index + 1) + '</span>'; 428 // } 429 }, 430 } 431 var SliderThumbs = new Swiper(".sOneProduct__slider-thumbs--js", { 432 spaceBetween: 10, 433 direction: "vertical", 434 slidesPerView: 5, 435 watchOverflow: true, 436 // freeMode: true, 437 watchSlidesVisibility: true, 438 watchSlidesProgress: true, 439 lazy: { 440 loadPrevNext: true, 441 }, 442 }); 443 var sOneProductSlider = new Swiper(".sOneProduct__slider--js", { 444 spaceBetween: 10, 445 slidesPerView: 1, 446 direction: "vertical", 447 watchOverflow: true, 448 touchReleaseOnEdges: true, 449 lazy: { 450 loadPrevNext: true, 451 }, 452 thumbs: { 453 swiper: SliderThumbs, 454 watchOverflow: true, 455 } 456 }); 457 var deposits = new Swiper(".sDeposits__slider--js ", { 458 slidesPerView: 'auto', 459 spaceBetween: 42, 460 breakpoints: { 461 992: { 462 slidesPerView: 5 463 }, 464 }, 465 }); 466 var projectsSlider = new Swiper(".sProject__slider--js ", { 467 slidesPerView: 1, 468 loop: false, 469 allowTouchMove: false, 470 autoplay: { 471 delay: 2000,
472 }, 473 navigation: { 474 nextEl: ".sProject__page-link--next", 475 prevEl: ".sProject__page-link--prev", 476 }, 477 on: { 478 init(swiper) { 479 480 let next = $(".sProject__slider--js .swiper-slide-next").data("title"); 481 let prev = $(".sProject__slider--js .swiper-slide-prev").data("title"); 482 483 $(".sProject__page-link--next .page-link-caption").html(next) 484 $(".sProject__page-link--prev .page-link-caption").html(prev) 485 this.el.addEventListener('mouseenter', () => { 486 this.autoplay.stop(); 487 }); 488 489 this.el.addEventListener('mouseleave', () => { 490 this.autoplay.start(); 491 }); 492 }, 493 slideChangeTransitionEnd() { 494 let next = $(".sProject__slider--js .swiper-slide-next").data("title"); 495 let prev = $(".sProject__slider--js .swiper-slide-prev").data("title"); 496 497 $(".sProject__page-link--next .page-link-caption").html(next) 498 $(".sProject__page-link--prev .page-link-caption").html(prev) 499 }, 500 }, 501 }); 502 var projectPicSlider = new Swiper(".sProject__slider-pic--js ", { 503 slidesPerView: '1', 504 loop: true, 505 spaceBetween: 0, 506 navigation: { 507 nextEl: ".swiper-button-next", 508 prevEl: ".swiper-button-prev", 509 }, 510 pagination: { 511 el: ".swiper-pagination", 512 clickable: true, 513 }, 514 }); 515 var oneDepositSlider = new Swiper(".sOneDeposit__slider--js", { 516 slidesPerView: '1', 517 loop: true, 518 spaceBetween: 0, 519 autoplay: { 520 delay: 2000, 521 }, 522 navigation: { 523 nextEl: ".swiper-button-next", 524 prevEl: ".swiper-button-prev", 525 }, 526 pagination: { 527 el: ".swiper-pagination", 528 clickable: true, 529 }, 530 on: { 531 init() { 532 this.el.addEventListener('mouseenter', () => { 533 this.autoplay.stop(); 534 }); 535 536 this.el.addEventListener('mouseleave', () => { 537 this.autoplay.start(); 538 }); 539 } 540 }, 541 }); 542 var sDeliverySlider = new Swiper(".sDeliveryMethods__slider--js ", { 543 slidesPerView: 'auto', 544 // loop: true, 545 spaceBetween: 24, 546 pagination: { 547 el: ".swiper-pagination", 548 clickable: true, 549 }, 550 navigation: { 551 nextEl: ".sDeliveryMethods .swiper-button-next", 552 prevEl: ".sDeliveryMethods .swiper-button-prev", 553 }, 554 }); 555 var sCertificatesSlider = new Swiper(".sCertificates__slider--js ", { 556 slidesPerView: 'auto', 557 // loop: true, 558 spaceBetween: 24, 559 pagination: { 560 el: ".swiper-pagination", 561 clickable: true, 562 }, 563 navigation: { 564 nextEl: ".sCertificates .swiper-button-next", 565 prevEl: ".sCertificates .swiper-button-prev", 566 }, 567 }); 568 var reviews = new Swiper(".sReviews__slider--js", { 569 slidesPerView: 1, 570 loop: true, 571 autoplay: { 572 delay: 2000, 573 }, 574 navigation: { 575 nextEl: ".swiper-button-next", 576 prevEl: ".swiper-button-prev", 577 }, 578 579 on: { 580 init() { 581 this.el.addEventListener('mouseenter', () => { 582 this.autoplay.stop(); 583 }); 584 585 this.el.addEventListener('mouseleave', () => { 586 this.autoplay.start(); 587 }); 588 } 589 }, 590 }); 591 var reviewsSlider = new Swiper(".sReviewsSlider__slider--js", { 592 slidesPerView: 'auto', 593 navigation: { 594 nextEl: ".swiper-button-next", 595 prevEl: ".swiper-button-prev", 596 }, 597 pagination: { 598 el: ".swiper-pagination", 599 clickable: true, 600 }, 601 breakpoints: { 602 576: { 603 slidesPerView: 1 604 }, 605 }, 606 }); 607 var sAboutCompanySlider = new Swiper(".sAboutCompany__slider--js", { 608 slidesPerView: 'auto', 609 spaceBetween: 24, 610 loop: true, 611 autoplay: { 612 delay: 2000, 613 }, 614 navigation: { 615 nextEl: ".sAboutCompany .swiper-button-next", 616 prevEl: ".sAboutCompany .swiper-button-prev", 617 }, 618 pagination: { 619 el: ".swiper-pagination", 620 clickable: true, 621 }, 622 // breakpoints: { 623 // 576: { 624 // slidesPerView: 1 625 // }, 626 // }, 627 }); 628 var reviewsNoteSlider = new Swiper(".sReviewsNoteSlider__slider--js", { 629 slidesPerView: 'auto', 630 navigation: { 631 nextEl: ".swiper-button-next", 632 prevEl: ".swiper-button-prev", 633 }, 634 breakpoints: { 635 576: { 636 slidesPerView: 1 637 }, 638 }, 639 }); 640 var offers = new Swiper(".sOffers__slider--js", { 641 slidesPerView: 'auto', 642 spaceBetween: 15, 643 pagination: { 644 el: ".swiper-pagination", 645 clickable: true, 646 }, 647 autoplay: { 648 delay: 5000, 649 reverseDirection: true, 650 pauseOnMouseEnter: true, 651 }, 652 breakpoints: { 653 1200: { 654 slidesPerView: 4 655 }, 656 992: { 657 slidesPerView: 3 658 }, 659 600: { 660 slidesPerView: 2 661 }, 662 300: { 663 slidesPerView: 1 664 }, 665 }, 666 navigation: { 667 nextEl: ".swiper-button-next", 668 prevEl: ".swiper-button-prev", 669 }, 670 }); 671 672 var offers = new Swiper(".sRecently__slider--js", { 673 slidesPerView: 'auto', 674 spaceBetween: 15, 675 autoplay: { 676 delay: 5000, 677 reverseDirection: true, 678 pauseOnMouseEnter: true, 679 }, 680 breakpoints: { 681 1200: { 682 slidesPerView: 4 683 }, 684 992: { 685 slidesPerView: 3 686 }, 687 600: { 688 slidesPerView: 2 689 }, 690 300: { 691 slidesPerView: 1 692 }, 693 }, 694 navigation: { 695 nextEl: ".swiper-button-next", 696 prevEl: ".swiper-button-prev", 697 }, 698 }); 699 700 var sSignificantObjects = new Swiper(".sSignificantObjects__slider--js", { 701 slidesPerView: 'auto', 702 spaceBetween: 24, 703 pagination: { 704 el: ".sSignificantObjects .swiper-pagination", 705 clickable: true, 706 }, 707 breakpoints: { 708 768: { 709 spaceBetween: 35, 710 slidesPerView: 2 711 }, 712 1200: { 713 spaceBetween: 50, 714 slidesPerView: 2 715 } 716 }, 717 navigation: { 718 nextEl: ".sSignificantObjects .swiper-button-next", 719 prevEl: ".sSignificantObjects .swiper-button-prev", 720 }, 721 }); 722 723 var productionSlider = new Swiper(".sProduction__slider--js", { 724 slidesPerView: 'auto', 725 spaceBetween: 10, 726 // loop: true, 727 navigation: { 728 nextEl: ".sProduction__slider-block .swiper-button-next", 729 prevEl: ".sProduction__slider-block .swiper-button-prev", 730 }, 731 breakpoints: { 732 992: { 733 slidesPerView: 2, 734 spaceBetween: 30, 735 }, 736 576: { 737 spaceBetween: 20, 738 } 739 } 740 741 }); 742 const swiper4 = new Swiper('.sBanners__slider--js', { 743 // slidesPerView: 5, 744 // ...defaultSl, 745 slidesPerView: 'auto', 746 freeMode: true, 747 slideToClickedSlide: true, 748 749 }); 750 // modal window 751 const swiper5 = new Swiper('.place-slider--js', { 752 // slidesPerView: 5, 753 // ...defaultSl, 754 slidesPerView: 'auto', 755 freeMode: true, 756 loop: false, 757 navigation: { 758 nextEl: ".place-slider-wrap .swiper-button-next", 759 prevEl: ".place-slider-wrap .swiper-button-prev", 760 }, 761 }); 762 const swiperbreadcrumb = new Swiper('.breadcrumb-wrap .swiper', { 763 // slidesPerView: 5, 764 // ...defaultSl, 765 watchOverflow: true, 766 slidesPerView: 'auto', 767 freeMode: true, 768 loop: false, 769 }); 770 771 772 773 $(".sQwiz__body .radio-block ").click(function () { 774 if ($(this).find('input').is(':checked')) { 775 $(this).parents(".sQwiz__step").find(".sCalc__btn--next.d-none").removeClass("d-none") 776 } 777 778 }) 779 780 $(".sCalc__btn--next, .sQwiz__body .radio-block").click(function () { 781 $(this).parents(".sQwiz__step").hide().removeClass('active').next().fadeIn(function () { 782 $(this).addClass('active'); 783 }) 784 }) 785 $(".sCalc__btn--prev").click(function () { 786 $(this).parents(".sQwiz__step").hide().removeClass('active').prev().fadeIn(function () { 787 $(this).addClass('active'); 788 }) 789 }) 790 791 792 $(".toggle-search-js").click(function () { 793 $(this).toggleClass("active"); 794 $(".topLine__input-wrap").slideToggle().find("input").focus(); 795 }) 796 797 $(".toggle-filter--js").click(function () { 798 $(".sidebar__filter").toggleClass("active") 799 $("body").toggleClass("fixed") 800 }) 801 $(".sidebar__head span").click(function () { 802 $(".sidebar__filter").removeClass("active") 803 $("body").removeClass("fixed") 804 }) 805 806 // СкÑÑваем ÑилÑÑÑ Ð¿Ñи клике на "ÐоказаÑÑ" 807 $('#btn_result').click(function () { 808 $(".sidebar__head span").click(); 809 }) 810 811 //if (document.querySelector(".prod-right-block")) { 812 813 //var Sticky = new hcSticky('.prod-right-block', { 814 //stickTo: '.sOneProduct__wrap' 815 //}); 816 //} 817 818 819 820}; 821if (document.readyState !== 'loading') { 822 eventHandler(); 823} else { 824 document.addEventListener('DOMContentLoaded', eventHandler); 825} 826 827$(document).ready(function () { 828 $('input').keydown(function (e) { 829 if (e.keyCode === 13) { 830 console.log($('.qwiz-range').val()) 831 832 $('.active .sCalc__btn--next').click() 833 } 834 }); 835 836}); 837 838// window.onload = function () { 839// document.body.classList.add('loaded_hiding'); 840// window.setTimeout(function () { 841// document.body.classList.add('loaded'); 842// document.body.classList.remove('loaded_hiding'); 843// }, 500); 844// } 845// ÐÑокÑÑÑка навеÑÑ ÑÑÑаниÑÑ 846$(window).on('scroll', function () { 847 if ($(this).scrollTop() > 100) { 848 $('.button-up').addClass('scroll'); 849 } else { 850 $('.button-up').removeClass('scroll'); 851 } 852}); 853$('.button-up').click(function () { 854 $('body,html').animate({ 855 scrollTop: 0 856 }, 500); 857 return false;
858}); 859$(document).ready(function () { 860 861 $("#get_t").on("click", function () { 862 863 var get_id = $(this).attr("data-item"); 864 var target = $("." + get_id).offset().top; 865 866 $("html, body").animate({ scrollTop: target }, 400); 867 868 }); 869}); 870 871 872// ФикÑиÑование блока конÑÑлÑÑанÑа 873$(document).ready(function () { 874 let lastScrollTop = 0; 875 $(window).scroll(function () { 876 let sidebar = $('.sidebar'); 877 let consultant = $('.sidebar .consultant-block'); 878 let orderLast = $('.order-last'); 879 if (consultant.length > 0) { 880 let posScrol1 = sidebar.offset().top + sidebar.height() - consultant.height() - 100; 881 let posScrol2 = sidebar.offset().top + sidebar.height(); 882 let posScrol3 = orderLast.offset().top + orderLast.height() - consultant.height() - 215; 883 let st = $(this).scrollTop(); 884 if (sidebar.height() < $('#sProducts').height()) { 885 /* fix 30.07.2026: Ñм. комменÑаÑий ниже â ÑоÑÑоÑние по позиÑии, без напÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ */ 886 if (st < posScrol1) { 887 consultant.removeClass('fixed'); 888 consultant.removeClass('fixed2'); 889 } 890 else if (st >= posScrol3) { 891 consultant.removeClass('fixed'); 892 consultant.addClass('fixed2'); 893 } 894 else { 895 consultant.removeClass('fixed2'); 896 consultant.addClass('fixed'); 897 } 898 } 899 lastScrollTop = st; 900 } 901 902 }); 903}); 904// ФикÑиÑование Ñапки 905$(window).on('scroll', function () { 906 if ($(this).scrollTop() > $('.header').height()) { 907 $('.topLine-fixed').fadeIn(); 908 if (window.matchMedia('(max-width: 991px)').matches) { 909 $('.stock-fixed').addClass('mobile'); 910 } 911 } else { 912 $('.topLine-fixed').fadeOut(); 913 if (window.matchMedia('(max-width: 991px)').matches) { 914 $('.stock-fixed').removeClass('mobile'); 915 } 916 } 917}); 918/* 919var st = $('#sel_t').val(); 920 921let arr = st.split(','); 922 923$('.prc').text(arr[1]) 924$('.item_price').text(arr[1]) 925$('.h_tolhina').text(arr[0]) 926$('.add-product').attr('data-id', arr[2]); 927*/ 928$("#sel_t").change(function () { 929 var st = $('#sel_t').val(); 930 931 let arr = st.split(','); 932 933 $('.prc').text(arr[1]) 934 $('.item_price').text(arr[1]) 935 $('.h_tolhina').text(arr[0]) 936 $('.add-product').attr('data-id', arr[2]); 937}); 938 939 940$('.btn-thickness').click(function () { 941 if ($(this).hasClass('inactive')) return; 942 $('#p-thickness > span').text($(this).text()); 943 $('.btn-thickness.inactive').removeClass('inactive'); 944 $(this).addClass('inactive'); 945 var thickness = $(this).data('thickness'); 946 var id = $(this).data('id'); 947 var price = $(this).data('price'); 948 $('.prc').text(price); 949 $('#sel_t').val(thickness + ',' + price + ',' + id); 950}); 951// ФикÑиÑование пÑавого блока в каÑÑоÑке ÑоваÑа 952$(document).ready(function () { 953 let lastScrollTop = 0; 954 $(window).scroll(function () { 955 let sOneProductWrap = $('.sOneProduct__wrap'); 956 let prodRightBlock = $('.sOneProduct__wrap .prod-right-block'); 957 if (prodRightBlock.length > 0 && window.matchMedia("(min-width: 992px)").matches) { 958 let posScrol1 = sOneProductWrap.offset().top + prodRightBlock.height(); 959 let posScrol2 = sOneProductWrap.offset().top + sOneProductWrap.height() - prodRightBlock.height() - 65; 960 let posScrol3 = sOneProductWrap.offset().top - 65; 961 let st = $(this).scrollTop(); 962 if (sOneProductWrap.height() > prodRightBlock.height()) { 963 964 /* fix 30.07.2026: ÑоÑÑоÑние ÑÑиÑаеÑÑÑ Ð¢ÐÐЬÐРпо позиÑии ÑкÑолла, без ÑÑÑÑа 965 напÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ (st > lastScrollTop) â инаÑе пÑи ÑкÑолле ввеÑÑ ÐºÐ»Ð°ÑÑÑ Ð½Ðµ ÑнималиÑÑ 966 и пÑавÑй блок «залипал» внизÑ. */ 967 if (st < posScrol3) { 968 prodRightBlock.removeClass('fixed'); 969 prodRightBlock.removeClass('fixed2'); 970 } 971 else if (st >= posScrol2) { 972 prodRightBlock.removeClass('fixed'); 973 prodRightBlock.addClass('fixed2'); 974 } 975 else { 976 prodRightBlock.removeClass('fixed2'); 977 prodRightBlock.addClass('fixed'); 978 } 979 } 980 lastScrollTop = st; 981 } 982 983 }); 984}); 985 986 987 988document.addEventListener('DOMContentLoaded', () => { 989 try { 990 const place = document.querySelectorAll('.place-slider__title') 991 992 place.forEach(place => { 993 const trimingPlace = place.textContent.trim() 994 place.textContent = trimingPlace 995 if (place.textContent == 'ÐÑмовÑкий') { 996 place.textContent = 'ÐÑмовÑкое' 997 } else { 998 console.log('No found') 999 } 1000 }) 1001 } catch (error) { 1002 console.log(error) 1003 } 1004}) 1005 1006 1007try { 1008 const preVideo = document.querySelector('#pre-video') 1009 1010 setTimeout(() => { 1011 preVideo.insertAdjacentHTML('afterend', ` 1012 1013<video id="main-video" loop="" muted="" autoplay="" poster="assets/templates/new/img/@2x/webp/header-block.webp" class="picture-bg" style="object-fit: cover;z-index: -3;"> 1014 1015<source src="/assets/templates/video/video-bg-3.mp4" type="video/mp4"> 1016 <source src="/assets/templates/video/video-bg-3.webm" type="video/webm"> 1017 1018</video> 1019 1020 `) 1021 }, 5000) 1022} catch (error) { 1023 console.log(erroe) 1024} 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.