PageSourceSearch

https://montreal.ua/js/section.js

js montreal.ua collected 2026-10-08 07:23:40 UTC 5,691 bytes, 160 lines download raw bytes

1$("body").on("keyup", "#client_phone_modal", function () {
2    if ($(this).val().length > 15) {
3        var str = $(this).val();
4        str = str.substring(0, str.length - 1);
5        $(this).val(str);
6    }
7});
8
9$(window).scroll(function (event) {
10    var top = $(window).scrollTop();
11    if (top >= 20) {
12        $('.header-wrap').addClass('header-wrap--background');
13    } else {
14        $('.header-wrap').removeClass('header-wrap--background');
15    }
16});
17
18
19readMore($('.seo .container--middle'), 4);
20
21function readMore(jObj, lineNum) {
22    if (isNaN(lineNum)) {
23        lineNum = 0;
24    }
25    var go = new ReadMore(jObj, lineNum);
26}
27
28//class
29function ReadMore(_jObj, lineNum) {
30    var READ_MORE_LABEL = $('.hidden-text').data('textopen');
31    var HIDE_LABEL = $('.hidden-text').data('textclose');
32    console.log(READ_MORE_LABEL);
33
34    var jObj = _jObj;
35    var textMinHeight = parseInt(jObj.children('.hidden-text').css('line-height'), 10) * lineNum + 'px';
36    var textMaxHeight = jObj.children('.hidden-text').css('height');
37
38    jObj.children('.hidden-text').css('height', textMaxHeight);
39    jObj.children('.hidden-text').css('transition', 'height .5s');
40    jObj.children('.hidden-text').css('height', textMinHeight);
41
42    jObj.append('<button class="read-more">' + READ_MORE_LABEL + '</button>');
43
44    jObj.children('.read-more').click(function () {
45        if (jObj.children('.hidden-text').css('height') === textMinHeight) {
46            jObj.children('.hidden-text').css('height', textMaxHeight);
47            jObj.children('.read-more').html(HIDE_LABEL).addClass('active');
48            jObj.children('.hidden-text').addClass('active');
49        } else {
50            jObj.children('.hidden-text').css('height', textMinHeight);
51            jObj.children('.read-more').html(READ_MORE_LABEL).removeClass('active');
52            jObj.children('.hidden-text').removeClass('active');
53        }
54    });
55}
56
57
58$(document).ready(function () {
59    const $ul = $("<ul>").addClass("circles");
60    const countElement = 12;
61    const block = $('div.hidden').data('block');
62    for (let i = 0; i <= countElement; i++) {
63        let $li = $("<li>").css('background', block); // для нумерації  .text(i*2 + '%' )
64        $ul.append($li);
65    }
66    $("#banner .content").append($ul);
67    setTimeout(function () {
68        showBunner();
69    }, 2000);
70    function showBunner() {
71        $("#banner").fadeIn('slow');
72    }
73
74
75    //Приховати баннер після закриття та записати в кукі
76    $("#banner .close-button").click(function () {
77        // записуємо кукі на 1 день
78        var d = new Date();
79        d.setTime(d.getTime() + (1 * 24 * 60 * 60 * 1000)); // 1 день в мілісекундах
80        var expires = "expires=" + d.toUTCString();
81        document.cookie = "banner_close=true; " + expires + "; path=/";
82
83        // перевіряємо, чи є кукі встановлені
84        if (document.cookie.indexOf("banner_close") >= 0) {
85            // кукі не встановлені, тому анімуємо зникнення елемента з ідентифікатором #banner
86            $("#banner").fadeOut('slow');
87        } else {
88            // кукі встановлені, тому показуємо елемент з ідентифікатором #banner
89            $("#banner").show();
90        }
91    });
92
93    function showBunner() {
94        // перевіряємо, чи є кукі встановлені після завантаження сторінки
95        if (document.cookie.indexOf("banner_close") >= 0) {
96            $("#banner").hide();
97        } else {
98            $("#banner").fadeIn('slow');
99        }
100    }
101
102});
103// Отримуємо всі кнопки для прокрутки
104var scrollButtons = document.getElementsByClassName('scrollButton');
105
106// Додаємо обробник події для кожної кнопки
107for (var i = 0; i < scrollButtons.length; i++) {
108    scrollButtons[i].addEventListener('click', function() {
109        var targetClass = this.getAttribute('data-target'); // Отримуємо назву класу цільового блоку
110
111        // Знаходимо перший елемент з відповідним класом
112        var target = document.querySelector(targetClass);
113
114        // Перевіряємо, чи існує цільовий блок
115        if (target) {
116            smoothScroll(target);
117        }
118    });
119}
120
121// Функція для плавного прокручування до цільового блоку
122function smoothScroll(target) {
123    var targetPosition = target.getBoundingClientRect().top;
124    var startPosition = window.pageYOffset;
125
126    var distance = targetPosition - startPosition;
127    var duration = 1000;
128
129    var start = null;
130
131    function animation(currentTime) {
132        if (start === null) {
133            start = currentTime;
134        }
135
136        var timeElapsed = currentTime - start;
137        var scrollY = easeInOutQuad(timeElapsed, startPosition, distance, duration);
138        window.scrollTo(0, scrollY);
139
140        if (timeElapsed < duration) {
141            requestAnimationFrame(animation);
142        }
143    }
144
145    // Функція для плавного переходу
146    function easeInOutQuad(t, b, c, d) {
147        t /= d/2;
148        if (t < 1) return c/2*t*t + b;
149        t--;
150        return -c/2 * (t*(t-2) - 1) + b;
151    }
152
153    requestAnimationFrame(animation);
154}
155window.addEventListener('load', function() {
156    var preloader = document.getElementById('preloader');
157    if(preloader){
158        preloader.classList.add('hidden--loader');
159    }
160});

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.