(function (window) { "use strict"; var OPTIONS = window.SCREEN_SIZE_OPTIONS || {}; // wrapper + options.padding * 2 var sizeList = [980,1220,1340]; var nameList = ['small', 'medium', 'large']; var sizesLength = sizeList.length; var isBranding = false; var htmlElement = document.documentElement; var lastState, className; var options = { padding: 20, sideWidth: 140, largeSideWidth: 240, bannerStub: sizeList[0], minBranding: OPTIONS.minBranding || sizeList[1], maxBranding: 1920, classRe: /\s*screen_(\S+)/gi, classPrefix: 'screen_' }; // ширина экрана для больших ушей, когда они полностью помещаются для самого большого экрана var widthForLargeSide = sizeList[sizeList.length - 1] + (options.largeSideWidth + options.padding) * 2; function screenSize(branding) { var windowWidth = window.innerWidth; var actualWidth = windowWidth; var sideWidth, canBranding, canBrandingStub, size, result, state; // запоминаем состояние последнего вызова, например screenSize(true) в слоте п-брендинга if (typeof branding === 'boolean') { isBranding = branding; } if (isBranding) { sideWidth = windowWidth > widthForLargeSide && options.largeSideWidth || options.sideWidth; // используем 20 отступы по бокам под брендирование if (sideWidth) { actualWidth -= (sideWidth + options.padding) * 2; } } canBranding = windowWidth >= options.minBranding && windowWidth <= options.maxBranding; // не показываем брендинг на экраны меньше 1024 и больше 1900 if (!canBranding) { actualWidth = windowWidth; } canBrandingStub = actualWidth >= options.bannerStub && actualWidth < options.minBranding; // подбираем экран под окно пользователя с учетом брендинга for (var sizeNo = 1; sizeNo < sizesLength; sizeNo++) { if (actualWidth < sizeList[sizeNo]) { size = nameList[sizeNo - 1]; break; } } if (!size) { size = nameList[nameList.length - 1]; } state = [size, isBranding, canBranding, canBrandingStub, sideWidth].join(); if (lastState != state) { lastState = state; className = htmlElement.className.replace(options.classRe, '').split(' '); className.push(options.classPrefix + size); if (isBranding) { className.push(options.classPrefix + 'branding-p_need'); if (canBranding) { className.push(options.classPrefix + 'branding-p'); className.push(options.classPrefix + 'branding-p_' + sideWidth); } else if (canBrandingStub) { className.push(options.classPrefix + 'branding-p_banner-stub'); } } htmlElement.className = className.join(' '); try { window.dispatchEvent(new Event('resize')); } catch (ex) {} } } /** * Создает функцию, игнорирующую вызовы происходящие чаще заданого интервала * @param originalFn функция, частоту вызова которой необходимо ограничить * @param [timeout = 100] интервал * @param [callImmediately = false] флаг, указывающий что функция должна выполняться в начале группы вызовов * @returns {Function} */ function debounce (originalFn, timeout, callImmediately) { var timer = null; return function debounced () { var context = this, args = arguments; function delayed () { if (!callImmediately) { originalFn.apply(context, args); } timer = null; } if (timer !== null) { clearTimeout(timer); } else if (callImmediately) { originalFn.apply(context, args); } timer = setTimeout(delayed, timeout || 100); }; } screenSize(); window.screenSize = screenSize; if (window.addEventListener) { window.addEventListener("resize", debounce(screenSize), false); } else if (window.attachEvent) { window.attachEvent("onresize", debounce(screenSize)); } })(this);
21 мая
21 мая 18:19
Toyota решила возродить забытую, но полезную модель (фото)Гамму моделей Toyota пополнит 8-местный минивэн Granvia, но сперва модель появится на рынке Австралии
21 мая 12:30
Дефицит возвращается: АВТОВАЗ запретил продажу редких запчастейС появлением Lada Vesta Sport появился неожиданно высокий спрос на отдельные комплектующие
21 мая 11:39
Президент Узбекистана грозит закрыть «узбекский ответ “Ладе”»Президент Узбекистана Шавкат Мирзиёев поставил предприятию GM Uzbekistan ультиматум: «Завод должен создать десять тысяч рабочих мест. В противном случае такой завод не нужен»
21 мая 11:07
700 тысяч рублей за советский грузовик «Баба Яга» (фото)В Сети выставили на продажу «новые» грузовые автомобили ЗИЛ-133ГЯ, которые не выпускаются больше четверти века
21 мая 09:18
Умер трехкратный чемпион «Формулы-1»Австриец Ники Лауда провел в «королевских гонках» 13 сезонов, одержав 25 побед на этапах Гран-при и 54 раза поднимаясь на подиум
21 мая 08:44
Электромобили или дизель: есть ответ, что экологичнееПо данным ученых мюнхенского Института экономических исследований, авто с электродвигателем выделяют больше углекислого газа, чем машины на дизеле
21 мая 08:30
Jaguar Land Rover отчиталась о рекордном годовом убыткеЧистый убыток британского автопроизводителя Jaguar Land Rover оказался рекордным в 2018 году, составив 3,6 млрд ($4,6 млрд)
20 мая
20 мая 18:27
Volkswagen выбрал название для нового «российского» кроссовераВ 2020 году на мощностях Группы ГАЗ стартует выпуск нового недорогого паркетника марки Volkswagen
20 мая 17:47
В Тольятти начнут выпускать новую машину за 450 000 рублейВ декабре должно стартовать серийное производство электромобилей марки ZETTA
20 мая 13:43
От жары на юге России снова плавятся авто (теперь это «Форд»)Новый инцидент произошел в Ростове-на-Дону, где солнечные лучи в очередной раз повредили автомобиль
20 мая 12:14
Совместные поездки привлекают и пугают россиянАвто Mail.ru провел опрос среди своих читателей и выяснил, как они относятся к сервисам по совместным поездкам (райдшеринг)
20 мая 11:48
В России начали производство нового «Форда»На калининградском заводе Автотор стартовало производство модели F-Max
20 мая 10:34
На дорогах станет меньше грузовиков Росавтодор ввел ежегодное ограничение на движение большегрузных транспортных средств по федеральным дорогам при температуре воздуха выше 32 градусов по Цельсию
20 мая 10:30
Техосмотр: выясняем кто где покупает (и за сколько)Как только автомобилю исполняется три года, прежде чем отправиться за полисом ОСАГО, владелец должен пройти техосмотр и получить диагностическую карту. Повторять эту процедуру придется каждые два года, а после достижения машиной 7 лет и вовсе каждый год
20 мая 10:07
Найден город, где очень любят «Мерседесы» (фото)Жители небольшого хорватского городка Имотски на границе с Боснией намерены претендовать на запись в Книге рекордов Гиннесcа
18 мая
18 мая 10:00
Имеют ли право авиакомпании рассаживать членов одной семьи?​В Госдуме предложили обязать авиакомпании размещать членов одной семьи рядом друг с другом
18 мая 09:00
Прогулка из Амстердама в Сидней: путешествие на электромобилеК чему может привести страсть к путешествиям и вера в доброту людей и новое «чистое» будущее с электромобилями?
17 мая
17 мая 17:19
Самая нелепая погоня за преступниками (видео)В соцсетях активно обсуждают комичную запись под названием «Как в реальности работает спецназ Росгвардии». На видео, как уверяет автор ролика, попала неудачная попытка спецслужб задержать водителя
17 мая 15:07
Лукашенко взялся за спасение «лица белорусского автопрома»Президент Беларуси Александр Лукашенко лично согласовал кандидатуру нового генерального директора Минского автозавода
17 мая 14:40
В Москве после ДТП Audi разорвало на две части (фото)Водитель Audi Q7 не справился с управлением, автомобиль выбросило на обочину, где машина врезалась в опору уличного освещения. В итоге внедорожник разорвало на две части. Известно, что водитель автомобиля с места ДТП скрылся
17 мая 12:50
Volvo представила спальник-мечту дальнобойщикаVolvo представила тягач FH XXL, который отличается огромным кабинным спальником
17 мая 11:31
Московских водителей предупредили о популярном мошенничестве Злоумышленники незаконным путем получают телефон владельца задержанной машины и предлагают вернуть ее со штрафной стоянки за деньги
17 мая 09:26
Тысячи российских водителей клюнули на классическую схему обманаПолицейские задержали в Нижнем Новгороде подозреваемых в крупной афере с автозапчастями. Ущерб оценивается в сумму не менее 500 000 000 рублей
17 мая 09:00
Райдшеринг: за или против? Поделитесь мнениемРайдшеринг – это совместные поездки на автомобиле, расходы на которые делятся между попутчиками. Пользовались ли вы такими сервисами, и нужны ли они?
Подпишитесь на нас
Новости от Авто Mail.ru