(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
весты-гранты тоже продаются
но про них практически каждый день статьи...
СсылкаПожаловаться
Вася Семёркин
машины на батарейках это для детей
СсылкаПожаловаться
олежка rus
Если бмв наступит на грабли (батарейки), то это будет началом конца .....вследствии чего им останется только варить баварское пиво и забыть про автомобилестроение .
СсылкаПожаловаться
Serge Orloff
В ответ на комментарий от Вася Семёркин
Вася Семёркин
машины на батарейках это для детей
СсылкаПожаловаться
Жить в будущем, тоже только детям.
СсылкаПожаловаться
Serge Orloff
Судя по ценам и таком вот "стремлении" побольше продать i3 и i8, сразу было понятно, что это были только игры, перед чем-то серьёзным.
СсылкаПожаловаться
СИБАРИТ
много лишних 2 4 что это за БМВ
СсылкаПожаловаться
James Bond 007
В ответ на комментарий от Вася Семёркин
Вася Семёркин
машины на батарейках это для детей
СсылкаПожаловаться
Как-же китайцы похожи на детей!
СсылкаПожаловаться
Михаил 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