PageSourceSearch

https://don24.ru/js/scripts.js?v=1671593304

js don24.ru collected 2026-10-02 06:33:25 UTC 8,297 bytes, 255 lines download raw bytes

1jQuery(window).ready(function () {
2    if (Cookies.get('body')) {
3        $('body').toggleClass('dark');
4    }
5});
6
7window.onload = function () {
8    // Stiky menu // Липкое меню.
9    function stikyMenu(header) {
10        headerTop = header.offset().top;
11        $(window).scroll(function () {
12            headerHoggleClass();
13        });
14
15        function headerHoggleClass() {
16            if ($(window).scrollTop() > headerTop + 150) {
17                header.addClass('stiky');
18            } else {
19                header.removeClass('stiky');
20            }
21        }
22    };
23    stikyMenu($('#headerSticky'));
24
25    // Выпадайки при клике по кнопке
26    // Задать блокам выпадайкам айдишник совпадающий с data-drop="" в кнопке для этого блока
27    // Задать кнопкам .js-drop-btn и data-drop="" с айдишником блока выпадайки
28    function dropBlock(btn) {
29        var $this = undefined,
30            drop = undefined,
31            close = $('.js-drop-close');
32        btn.on('click', function () {
33            $this = $(this);
34            drop = $('#' + $this.data('drop'));
35            $this.toggleClass('is-active');
36            drop.toggleClass('open');
37            $(document).mouseup(function (e) {
38                if (!$this.is(e.target)
39                    && $this.has(e.target).length === 0
40                    && !drop.is(e.target)
41                    && drop.has(e.target).length === 0) {
42                    $this.removeClass('is-active');
43                    drop.removeClass('open');
44                }
45            });
46        })
47        close.on('click', function () {
48            $('[data-drop="' + $(this).data('drop') + '"]').removeClass('is-active');
49            $('#' + $(this).data('drop')).removeClass('open');
50        })
51    }
52
53    dropBlock($('.js-drop-btn'));
54
55    // Кнопка скролла страницы наверх
56    function scrollUp() {
57        const btn = $('.scrollup');
58        $(window).scroll(function () {
59            btnShowFade();
60        });
61
62        function btnShowFade() {
63            if ($(this).scrollTop() > 200) {
64                btn.addClass('show');
65            } else {
66                btn.removeClass('show');
67            }
68        }
69
70        btnShowFade();
71        btn.click(function () {
72            $('body,html').animate({
73                scrollTop: 0
74            }, 500);
75            return false;
76        });
77    }
78
79    scrollUp();
80
81    // Открытие подменю на мобилке
82    function openSubmenu() {
83        let link = $('.header__menu-link');
84        let submenu = $('.header__submenu');
85        link.on('click', function (e) {
86            let currentLink = $(this);
87            if ($(window).width() <= 991) {
88                e.preventDefault();
89                submenu.stop().slideUp(300);
90                currentLink.next('.header__submenu').stop().slideToggle(300);
91            }
92        });
93        $(window).resize(function () {
94            if ($(window).width() > 991) {
95                submenu.removeAttr('style');
96            }
97        });
98    }
99
100    openSubmenu();
101
102    // Переключение темы сайта
103    function themeSwitch() {
104        $('.theme-switch').on('click', function () {
105            if (getCookie('body')) {
106                deleteCookie('body');
107            } else {
108                setCookie('body', 'dark', {path: '/'});
109            }
110            $('body').toggleClass('dark');
111        })
112    }
113
114    themeSwitch();
115
116    // Смена положения блока при изменении ширины окна
117    // function(блок, куда переместить, куда вернуть)
118    function replace(block, to, from, mediaBreak) {
119        function replaceToggle() {
120            if ($(window).width() <= mediaBreak) { // условие на ширину окна
121                block.appendTo(to); // Переместить блок
122            } else {
123                block.appendTo(from); // Вернуть блок обратно
124            }
125        }
126
127        replaceToggle();
128        $(window).resize(function () {
129            replaceToggle();
130        })
131
132    }
133
134    replace($('#newsitems'), $('#newsitemsTo'), $('#newsitemsFrom'), 991);
135
136    // Swiper
137    // if ($('#postSlider').length) {
138    //   const swiper = new Swiper('#postSlider', {
139    //     slidesPerView: 1.3,
140    //     spaceBetween: 8,
141    //     navigation: {
142    //       nextEl: '.post__slider-button--next',
143    //       prevEl: '.post__slider-button--prev',
144    //     },
145    //     breakpoints: {
146    //       380: {
147    //         slidesPerView: 2.1,
148    //       },
149    //       576: {
150    //         slidesPerView: 2.3,
151    //       }
152    //     }
153    //   });
154    // }
155
156    if ($('.js-postSlider ').length) {
157        $('.js-postSlider ').each(function () {
158            let slider = $(this);
159            let prev = slider.find('.post__slider-button--prev');
160            let next = slider.find('.post__slider-button--next');
161            const swiper = new Swiper(slider[0], {
162                slidesPerView: 1.3,
163                spaceBetween: 8,
164                navigation: {
165                    nextEl: next[0],
166                    prevEl: prev[0],
167                },
168                breakpoints: {
169                    380: {
170                        slidesPerView: 2.1,
171                    },
172                    576: {
173                        slidesPerView: 2.3,
174                    }
175                }
176            });
177        })
178    }
179
180    // Sticky Sidebar
181    if ($('.js-sticky').length) {
182        var stickySidebar = new StickySidebar('.js-sticky', {
183            topSpacing: 65,
184            bottomSpacing: 10,
185            // containerSelector: false,
186            // innerWrapperSelector: '.sidebar__inner',
187            // resizeSensor: true,
188            // stickyClass: 'is-affixed',
189            // minWidth: 0
190        });
191    }
192
193}
194
195const fmDon = new Audio();
196$(document).on('click', '#radio-play, #radio-header', function () {
197    if (!fmDon.src) {
198        fmDon.src = 'https://radio.mediacdn.ru/fm_na_donu.mp3';
199    }
200    radio();
201});
202
203
204function radio() {
205    let radioPlay = $('#radio-play');
206    let radioHeader = $('#radio-header');
207    if (radioHeader.attr('data-event') != 'play') {
208        fmDon.play();
209        radioPlay.attr('data-event', 'play');
210        radioPlay.removeClass('play');
211        radioPlay.addClass('pause');
212        radioPlay.text('ПАУЗА');
213        radioHeader.text('ПАУЗА');
214        radioHeader.attr('data-event', 'play');
215        radioHeader.attr('title', 'Остановить радио эфир');
216        setCookie('radio', 'play', {path: '/'});
217    } else {
218        fmDon.pause();
219        radioPlay.attr('data-event', 'pause');
220        radioPlay.removeClass('pause');
221        radioPlay.addClass('play');
222        radioPlay.text('СЛУШАТЬ');
223        radioPlay.text('Прямой эфир');
224        radioHeader.text('Прямой эфир');
225        radioHeader.attr('data-event', 'pause');
226        radioHeader.attr('title', 'Слушать Радио ФМ-НА Дону');
227        deleteCookie('radio');
228    }
229}
230
231var docWidth = $(document).width();
232// Проверяем если ли на странице блок с социальными сетями и инициализируем добавление анимации //
233if ($('.social-wrapper').length && docWidth >= 1200) {
234    var SocialWrapper = $('.social-wrapper')
235    var SocialWrapperOffsetTop = SocialWrapper.offset().top
236
237    $(window).scroll(function () {
238        var ThisScrollTop = $(this).scrollTop()
239        var ThisScrollTopWindow = ThisScrollTop + $(window).height()
240
241        if (ThisScrollTopWindow > SocialWrapperOffsetTop) {
242            var SocialWrapperBg = SocialWrapper.find('.social-wrapper-bg')
243            SocialWrapperBg.addClass('animate-init')
244        }
245    })
246}
247//----------------------//
248
249// Замена фона в блоке социальных сетей в адаптиве //
250if ($('.social-wrapper-bg').length && docWidth < 1200) {
251    $('.social-wrapper-bg').css({
252        'background-image': 'url(' + $('.social-wrapper-bg').attr('data-bg-mobile') + ')',
253    })
254}
255//----------------------//

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.