(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);
Mail.RuПочтаМой МирОдноклассникиИгрыЗнакомстваНовостиПоискВсе проекты
Рассылка
Получайте главные новости дня от Hi-Tech Mail.Ru

Российские ученые разгадали тайну озонового слоя

Более 20 лет у физиков не сходились теория и экспериментальные данные по образованию озона в верхних слоях земной атмосферы. Но расчеты российских ученых и их французских коллег внесли ясность в этот процесс.

Интернациональная группа исследователей рассчитала молекулярную динамику процесса, в котором кислород проходит через ряд метастабильных состояний, превращается в озон и впоследствии распадается. Ключом к пониманию превращений стало обнаружение новой поверхности потенциальной энергии в молекулярной структуре озона.

Фото: depositphotos

До этого физики полагали, что у озона есть некий барьер поверхности потенциальной энергии на траектории распада. Расчеты ученых из Томского государственного университета показали ошибочность этих представлений. Это позволило согласовать теоретическую и экспериментальную скорость реакции.

Статья об этом была опубликована в журнале The Journal Physical Chemistry. Данные исследования очень важны для понимания климатических изменений и их связи с концентрацией озона в атмосфере. Ведь озон — не только буфер на пути космического излучения, но и третий по важности парниковый газ.

Это тоже интересно:

Расскажи друзьям, что ученые выяснили, как образуется озон. Нажми одну из кнопок ниже.
Хиты продаж и новинки
Самые лучшие цены на смартфоны
Вы подписались на рассылку.Отменить
Подписаться на рассылку
Комментарии
17
виктор сердюков
если раньше рабовладелец измывался над человеком, сейчас над странами от него бегущими.
СсылкаПожаловаться
виктор сердюков
В ответ на комментарий от Регистратор
Регистратор
Короткая завуалированная фраза без раскрытия темы:
До этого физики полагали, что у озона есть некий барьер поверхности потенциальной энергии на траектории распада. Расчеты ученых из Томского государственного университета показали ошибочность этих представлений. Это позволило согласовать теоретическую и экспериментальную скорость реакции.
И чиво?
СсылкаПожаловаться
как озон попадает в этот слой и на каком законе физике?
СсылкаПожаловаться
Петр Голубев
В ответ на комментарий от Р
Р
Ну хоть тут не кто не будет утверждать что науки нет)))
СсылкаПожаловаться
Будут.
СсылкаПожаловаться
Чтобы оставить комментарий, вам нужно авторизоваться.
Обнаружили ошибку? Выделите ее и нажмите Ctrl+Enter.
Подпишитесь на нас
Новости Hi-Tech Mail.Ru