PageSourceSearch

https://dialog-auto.ru/local/templates/main/assets/bx-js/contacts/contacts.js?17897194963781

js dialog-auto.ru collected 2026-09-29 09:13:57 UTC 3,781 bytes, 71 lines download raw bytes

1"use strict";
2
3$(function () {
4  // прокрутка к карточке дилера; на страницах услуг скрипт подключён ради карты, а карточек [data-contact-item-id] нет —
5  // раньше здесь падал TypeError (offset() от пустого набора) и select2 не закрывался после выбора
6  function scrollToDealer(dealerId) {
7    var $item = $('[data-contact-item-id="' + dealerId + '"]');
8    if (!$item.length) { return; }
9    $('html, body').animate({ scrollTop: $item.offset().top - 120 }, 1000);
10  }
11  $('.js-contacts-filter').click(function (e) {
12    e.preventDefault();
13    var data = $(this).data('contacts');
14    $('.filter__item').removeClass('filter__item_active');
15    $('.contacts__content').removeClass('contacts__content_active');
16    $('.filter__item[data-contacts=' + data + ']').toggleClass('filter__item_active');
17    $('.contacts__content[data-contacts=' + data + ']').toggleClass('contacts__content_active');
18
19    // Список стоит в DOM выше карты и он очень высокий: при переключении вида документ резко укорачивается,
20    // браузер прижимает прокрутку к новому максимуму, и показанный блок оказывается выше кадра — пользователь,
21    // нажавший «Показать на карте» из середины списка, видел футер. Подводим показанный блок под шапку,
22    // но только если он сейчас не в кадре, чтобы клик по табам из верха страницы ничего не дёргал.
23    var $shown = $('.contacts__content[data-contacts=' + data + ']');
24    if ($shown.length) {
25      var rect = $shown[0].getBoundingClientRect();
26      if (rect.top < 0 || rect.top > window.innerHeight * 0.5) {
27        $('html, body').stop(true).animate({ scrollTop: Math.max(0, $shown.offset().top - 120) }, 300);
28      }
29    }
30  });
31
32  $('.js-contacts-info-close').click(function () {
33    $(this).closest('.contacts__info').removeClass('contacts__info_active');
34  });
35  $('.contacts__center .js-contacts-center').click(function (e) {
36    e.preventDefault();
37    var dealerId = $(this).data('dialer-id');
38    if ($(this).hasClass('contacts__center-item_active')) {
39      $(this).removeClass('contacts__center-item_active');
40      $('.js-select2').val(null).trigger('change');
41    } else {
42      scrollToDealer(dealerId);
43      $('.contacts__center-item').removeClass('contacts__center-item_active');
44      $(this).addClass('contacts__center-item_active');
45      $('.js-select2').val(dealerId).trigger('change');
46    }
47  });
48  $(document).on('change', '.js-select2', function (e) {
49    var dealerId = $(this).val();
50    if (dealerId) {
51      scrollToDealer(dealerId);
52      $('.contacts__center-item').removeClass('contacts__center-item_active');
53      $('[data-dialer-id="' + dealerId + '"]').addClass('contacts__center-item_active');
54    } else {
55      $('.contacts__center-item').removeClass('contacts__center-item_active');
56    }
57  });
58    // document.querySelectorAll('.contacts__item-elem-toggle').forEach(toggle => {
59    //     toggle.addEventListener('click', function () {
60    //         const parent = toggle.closest('.contacts__item-elem-text');
61    //         if (!parent) return;
62
63    //         const phoneLink = parent.querySelector('.contacts__item-elem-link');
64    //         if (!phoneLink) return;
65
66    //         toggle.style.display = 'none';
67    //         phoneLink.style.visibility = 'visible';
68    //         phoneLink.style.maxHeight = '100px';
69    //     });
70    // });
71});

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.