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.