PageSourceSearch

https://programma-t.ru/templates/melissa/js/sys.min.js?191aa18e

js programma-t.ru collected 2026-10-08 19:50:58 UTC 12,258 bytes, 311 lines download raw bytes

1/*======================================================================*\
2|| #################################################################### ||
3|| # Copyright 2018 melissa.team All Rights Reserved.                 # ||
4|| # Файл js кода. Версия для разработки. Все изменения здесь.        # ||
5|| # Необходимо делать компрессию вручную и добавлять в sys.min.js    # ||
6|| # после любого изменения в этом файле, рекомендуется с помощью:    # ||
7|| # UglifyJS https://github.com/mishoo/UglifyJS2                     # ||
8|| #################################################################### ||
9\*======================================================================*/
10
11/** Изоляция */
12;
13(function($) {
14    /*-----------------------------------------*/
15
16    // Уникальный идентификатор Яндекс Метрики
17    // var yaCounterId = 123456
18
19    /** Когда документ загрузился */
20    $(function() {
21
22        // ================================================
23        // Маска телефонов
24        // https://github.com/RobinHerbots/jquery.inputmask
25        // ================================================
26        $('input[type=text][id^="tel_"]').each(function() {
27            $(this).inputmask('+7 (999) 999-99-99')
28        })
29
30        // ================================================
31        // HEADER-STICK
32        // ================================================
33        function headerCalc() {
34            $('.header-stick').css('height', $('#page-header').outerHeight());
35        }
36
37        headerCalc();
38
39        $(window).on('resize', function() {
40            headerCalc();
41        });
42
43        // ================================================
44        // WOW.js
45        // Инициализация
46        // https://github.com/matthieua/WOW
47        // ================================================
48        new WOW({
49            mobile: false
50        }).init()
51
52        // ================================================
53        // bLazy.js – A lazyload image script
54        // Инициализация.
55        // http://dinbror.dk/blog/blazy/
56        // Атрибут data-src="", селектор .b-lazy
57        // Метод реинициализации bLazy.revalidate();
58        // ================================================
59        var bLazy = new Blazy({ offset: 200 })
60
61        // ================================================
62        // jQuery fancyBox.
63        // http://fancyapps.com/fancybox/3/
64        // Инициализация на
65        // <a class="fancybox" data-fancybox="group1" href="big.jpg"><img src="small.jpg" alt="" /></a>
66        // ================================================
67        $(".fancybox").fancybox({
68            loop: true,
69            infobar: true
70        });
71
72        // ================================================
73        // Swiper
74        // Инициализация
75        // http://idangero.us/swiper/
76        // ================================================
77        if ($('.slider-swiper .swiper-slide').length > 1) {
78          var $sliderSwiper = new Swiper('.slider-swiper', {
79              speed: 800,
80              spaceBetween: 0,
81              slidesPerView: 1,
82              loop: true,
83              pagination: {
84                  el: '.swiper-pagination',
85                  type: 'bullets',
86                  clickable: true,
87                  dynamicBullets: true,
88              },
89              // navigation: {
90              //     nextEl: '.swiper-next',
91              //     prevEl: '.swiper-prev',
92              // },
93              autoplay: {
94                  delay: 9000,
95              },
96          });
97
98          $sliderSwiper.on('slideChange', function() {
99              bLazy.revalidate();
100          });
101        }
102
103        // ================================================
104        // Swiper
105        // Инициализация
106        // http://idangero.us/swiper/
107        // ================================================
108        var $projectsSwiper = new Swiper('.projects-swiper', {
109            speed: 700,
110            spaceBetween: 30,
111            slidesPerView: 3,
112            loop: true,
113            breakpoints: {
114                // when window width is <= 480px
115                480: {
116                    slidesPerView: 1.25,
117                    freeMode: true,
118                    autoplay: false
119                },
120                // when window width is <= 640px
121                600: {
122                    slidesPerView: 2
123                },
124                // when window width is <= 640px
125                1023: {
126                    slidesPerView: 2
127                },
128                1400: {
129                    slidesPerView: 2
130                },
131                1600: {
132                    slidesPerView: 3
133                }
134            },
135            // pagination: {
136            //     el: '.swiper-pagination',
137            //     type: 'bullets',
138            //     clickable: true,
139            //     dynamicBullets: true,
140            // },
141            navigation: {
142                nextEl: '.swiper-next',
143                prevEl: '.swiper-prev',
144            },
145            autoplay: false
146        });
147
148        $projectsSwiper.on('slideChange', function() {
149            bLazy.revalidate();
150        });
151
152        // ================================================
153        // jQuery Animsition.
154        // Инициализация
155        // https://github.com/blivesta/animsition
156        // ================================================
157        // $('body > .wrapper-a').animsition({
158        //   inClass: 'fade-in',
159        //   outClass: 'fade-out',
160        //   inDuration: 1500,
161        //   outDuration: 800,
162        //   linkElement: 'a[href]:not([target="_blank"]):not([href^=#]):not([href^="tel"]):not([href^="mailto"]):not([class*="indevelop"]):not([href^="javascript"]):not(.fancybox)',
163        //   loading: true,
164        //   loadingParentElement: 'body',
165        //   loadingClass: 'animsition-loading',
166        //   unSupportCss: [
167        //     'animation-duration',
168        //     '-webkit-animation-duration',
169        //     '-o-animation-duration'
170        //   ],
171        //   overlay: false,
172        //   overlayClass: 'animsition-overlay-slide',
173        //   overlayParentElement: 'body'
174        // })
175
176        // ================================================
177        // jQuery Counter-Up.
178        // Инициализация.
179        // https://github.com/bfintal/Counter-Up
180        // ================================================
181        // $('.counter').counterUp({
182        //   delay: 10,
183        //   time: 1000
184        // })
185
186        // ================================================
187        // jQuery Waypoints.
188        // Инициализация.
189        // http://imakewebthings.com/waypoints/
190        // ================================================
191        // var waypoints = $('#options-only').waypoint({
192        //   handler: function (direction) {
193        //     notify(this.element.id + ' hit')
194        //   }
195        // })
196
197        // ================================================
198        // jQuery Waypoints Infinite Scrolling.
199        // Инициализация.
200        // http://imakewebthings.com/waypoints/shortcuts/infinite-scroll/
201        // ================================================
202        // var infinite = new Waypoint.Infinite({
203        //   element: $('.infinite-container')[0]
204        // })
205
206        // ================================================
207        // jQuery Waypoints Sticky Elements.
208        // Инициализация.
209        // http://imakewebthings.com/waypoints/shortcuts/sticky-elements/
210        // ================================================
211        // var sticky = new Waypoint.Sticky({
212        //   element: $('.basic-sticky-example')[0]
213        // })
214
215        // ================================================
216        // jQuery Waypoints Inview Detection.
217        // Инициализация.
218        // http://imakewebthings.com/waypoints/shortcuts/inview/
219        // ================================================
220        // var inview = new Waypoint.Inview({
221        //   element: $('#inview-example')[0],
222        //   enter: function (direction) {
223        //     notify('Enter triggered with direction ' + direction)
224        //   },
225        //   entered: function (direction) {
226        //     notify('Entered triggered with direction ' + direction)
227        //   },
228        //   exit: function (direction) {
229        //     notify('Exit triggered with direction ' + direction)
230        //   },
231        //   exited: function (direction) {
232        //     notify('Exited triggered with direction ' + direction)
233        //   }
234        // })
235
236        // ================================================
237        // jQuery Bootstrap Tagsinput.
238        // https://github.com/timschlechter/bootstrap-tagsinput
239        // Инициализация на js, либо добавив
240        // атрибут data-role="tagsinput"
241        // ================================================
242        // $('input').tagsinput()
243
244        // ================================================
245        // Ajax работа с RSForm
246        // ================================================
247        if (typeof bindAjaxRSForm === 'function') {
248            // Работаем с формой обратного звонка
249            bindAjaxRSForm({
250                name: 'feedback',
251                on: {
252                    success: function($form, name, data, textStatus, jqXHR) {
253                        // Настройки для Facebook Pixel
254                        // if (typeof fbq === 'function') {
255                        //   fbq('track', 'Lead')
256                        // }
257
258                        // Настройка Yandex Целей
259                        // yaCounterReachGoal(yaCounterId, ['target', callback, ctx, params])
260
261                        // Настройка Google Целей
262                        // gaSendEvent(['eventCategory', 'eventAction', 'eventLabel'])
263                    }
264                }
265            })
266        }
267
268        // ================================================
269        // Меню
270        // ================================================
271        $('[data-target="#main-menu"]').on('click', function() {
272            $(this).toggleClass('active');
273        });
274
275        // ======================================================================
276        // ====================== Плавный переход на якоря ======================
277        // ======================================================================
278        $('a[href*=\\#]:not([data-toggle])').bind("click", function(e) {
279            var anchor = $(this),
280                header = $('header'),
281                headerHeight = header.outerHeight();
282
283            $('html, body').stop().animate({
284                scrollTop: $(anchor.attr('href')).offset().top - (headerHeight - (header ? 0 : 40))
285            }, 600);
286
287            e.preventDefault();
288        });
289
290        // ================================================
291        // Кнопка наверх
292        // ================================================
293        // $(window).on('scroll', function () {
294        //   if ($(this).scrollTop() > 300) {
295        //     $('#scroller').addClass('active')
296        //   } else {
297        //     $('#scroller').removeClass('active')
298        //   }
299        // })
300        //
301        // $('#scroller').click(function () {
302        //   $('body,html').animate({
303        //     scrollTop: 0
304        //   }, 600)
305        //   return false
306        // })
307
308    })
309
310    /*-----------------------------------------*/
311})(jQuery)

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.