(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);
Комментарии
15
К первому сообщениюВ начало
К последнему сообщениюВ конец
1 1
а где же статья из Детройта про BMW X2 ?
очень симпотичная машинка получилась
СсылкаПожаловаться
Михаил Троицкий
лучше б ОКУШКУ делали
СсылкаПожаловаться
санёк
В ответ на комментарий от 1 1
1 1
а где же статья из Детройта про BMW X2 ?
очень симпотичная машинка получилась
СсылкаПожаловаться
но ведь она уже продается, а на автошоу она стоит просто для ознакомления и представления американскому рынку...
СсылкаПожаловаться
1 1
весты-гранты тоже продаются
но про них практически каждый день статьи...
СсылкаПожаловаться
vassa2107@mail.ru
машины на батарейках это для детей
СсылкаПожаловаться
олежка rus
Если бмв наступит на грабли (батарейки), то это будет началом конца .....вследствии чего им останется только варить баварское пиво и забыть про автомобилестроение .
СсылкаПожаловаться
Serge Orloff
В ответ на комментарий от vassa2107@mail.ru
vassa2107@mail.ru
машины на батарейках это для детей
СсылкаПожаловаться
Жить в будущем, тоже только детям.
СсылкаПожаловаться
Serge Orloff
Судя по ценам и таком вот "стремлении" побольше продать i3 и i8, сразу было понятно, что это были только игры, перед чем-то серьёзным.
СсылкаПожаловаться
СИБАРИТ
много лишних 2 4 что это за БМВ
СсылкаПожаловаться
James Bond 007
В ответ на комментарий от vassa2107@mail.ru
vassa2107@mail.ru
машины на батарейках это для детей
СсылкаПожаловаться
Как-же китайцы похожи на детей!
СсылкаПожаловаться
Михаил Mackiewicz
Фиаско выдавать за достижение. Данные модели не имели спроса, т.к немцы слишком завысили ценники. На i8 ставьте до 100.000€, а i3 не должно превышать 20-25к€-тогда это было бы интересным, а так завысят за любой хлам как apple ценники в 5 раз вышеаналогов и удивляются что пипл не хавает
СсылкаПожаловаться
П@вел
А как же всеобщее стремление производить электромобили? Много хороших и разных? Сдулись, всё?
СсылкаПожаловаться
DarkLight
Можно запатентовать торговое имя состоящее из 3-х букв, и даже из 2-х - это жесть! Странно, что никто ещё не запатентовал все свободные сочетания из 4-х букв и цифр - их не так много - а в будущем их можно будет дорого продать!
СсылкаПожаловаться
Pull the trigger
Вот тебе и первый поворот от глобальной электрофикации авто
СсылкаПожаловаться
DarkLight
В ответ на комментарий от Михаил Mackiewicz
Михаил Mackiewicz
Фиаско выдавать за достижение. Данные модели не имели спроса, т.к немцы слишком завысили ценники. На i8 ставьте до 100.000€, а i3 не должно превышать 20-25к€-тогда это было бы интересным, а так завысят за любой хлам как apple ценники в 5 раз вышеаналогов и удивляются что пипл не хавает
СсылкаПожаловаться
В указанном Вами диапазоне находятся не электрические модели BMW (для 8 серии оценочно), а электрические авто выходят по-любому существенно (минимум на 25-30%) дороже из-за дорогой батареи, плюс у i-версий более крутой дизайн и электронная начинка. Но я не буду спорить на i-версии цена задрана, как не буду спорить что цена задрана вообще на все автомобили BMW. Но тут люди сильно переплачивают именно за понты и престиж марки.
СсылкаПожаловаться
Чтобы оставить комментарий, вам нужно авторизоваться.
Вы не ввели текст комментария
Вы не ввели текст комментария
Подпишитесь на нас
Новости от Mail.ru Авто