{ "blockName": "popup", "description": "
Popup - блок для создания выпадающих элементов интерфейса или модальных окон.
\n\n\n\n", "jsParams": [ { "name": "directions", "description": "Может быть строкой,\n устанавливающей направление раскрытия попапа или\n объектом с параметрами.
", "optional": true, "types": [ "String", "Object" ] }, { "name": "directions", "description": "Если указана строка, то будет задано напрвление раскрытия попапа.\n Допустимые значения: 'top', 'bottom', 'right', 'left'.
", "optional": true, "types": [ "String" ], "default": "'bottom'" }, { "name": "directions", "description": "Направления раскрытия попапа (не учитывается для модального окна).
", "optional": true, "types": [ "Object" ] }, { "name": "directions.to", "description": "Сторона раскрытия попапа.\n Допустимые значения: top, bottom, left, right.
Ось попапа. Допустимые значения:\n left, right, center, middle, bottom, top.
Смещение попапа по направлениям top, right, bottom, left\n относительно центра owner.\n Если указано число, то это значение будет раскрыто для\n всех направлений.
Параметры хвоста в контексте направления раскрытия.
", "optional": true, "types": [ "String" ] }, { "name": "directions.width", "description": "Ширина хвоста.
", "optional": true, "types": [ "String" ], "default": "24.04" }, { "name": "directions.height", "description": "Высота хвоста.
", "optional": true, "types": [ "String" ], "default": "12.02" }, { "name": "directions.tail.axis", "description": "Ось хвоста попапа.
", "optional": true, "types": [ "String" ] }, { "name": "directions.tail.offset", "description": "Смещение хвоста по направлениям top, right, bottom, left\n относительно центра owner.\n Если указано число, то это значение будет раскрыто для\n всех направлений.
Фиксированное положение попапа.
", "optional": true, "types": [ "Object" ] }, { "name": "directions.position.top", "description": "Фиксированное положение попапа по вертикали.
", "optional": true, "types": [ "Number" ] }, { "name": "directions.position.left", "description": "Фиксированное положение попапа по горизонтали.
", "optional": true, "types": [ "Number" ] } ], "methods": [ { "name": "getDefaultParams", "description": "Возвращает параметры блока по умолчанию.
\n", "params": [], "returns": [ { "description": "", "types": [ "Object" ] } ], "deprecated": false, "final": false, "access": "protected", "scope": "instance" }, { "name": "show", "description": "Показывает popup.
\nВ зависимости от переданных параметров может быть показан как выпадающий элемент\nлибо как модальное окно.
\nПоказ блока относительно другого блока:
\npopup.show(otherBlock);\nПоказ блока относительно DOM-элемента:
\npopup.show($('.some-class');)\nПоказ блока, в заданной позиции:
\npopup.show({top: 100, left: 100});\nЕсли параметры не переданы, просто завершает работу не показывая блок.
\nВ случае, если установлен модификатор _animate_yes и не\nустановлен модификатор _fade-in_no, проигрывает анимацию.
Устанавливает модификатор _visibility_visible и генерирует событие show\nдо начала анимации.
Объект jQuery, i-bem блок или позиция\nпопапа. В первых двух случаях позиция расчитывается соответственно параметру directions\nотносительно DOM-элемента или блока.
", "optional": true, "types": [ "jQuery", "BEM", "Object" ] }, { "name": "param.top", "description": "Отступ сверху, в пикселях
", "optional": false, "types": [ "Number" ] }, { "name": "param.left", "description": "Отступ слева, в пикселях
", "optional": false, "types": [ "Number" ] } ], "returns": [ { "description": "", "types": [ "BEM.DOM" ] } ], "deprecated": false, "final": false, "access": "public", "scope": "instance" }, { "name": "hide", "description": "Скрывает popup и все его дочерние попапы.
\nВ случае, если установлен модификатор _animate_yes и не\nустановлен модификатор _fade-out_no, проигрывает анимацию.
Удаляет модификатор visibility и генерирует событие hide\nпо окончании анимации, если анимация включена, или моментально,\nесли анимация выключена.
Показывает блок, если он скрыт или скрывает его, если он показан.
\nВ зависимости от текущего соcтояния, вызывает либо show, либо hide.
Если установлен модификатор _animate_yes, прогрывает анимацию. По отдельности\nанимацию показа и скрытия можно также отключить при помощи модификаторов\n_fade-in_no и _fade-out_no соответственно.
Устанавливает модификатор visibility в значение visible или удаляет его по окончании\nанимации (или моментально, если соответствующая анимация отключена).
DOM-элемент или блок относительно которых расчитывается позиция\nблока или явно заданные координаты { left : x, top : y }. Используется только при показе.\nЕсли не передан, будет использовано предыдущее значение DOM-элемента или блока,\nиспользованное при вызове popup#show или popup#toggle. Если это первый вызов или\nпредыдущий вызов использовал координаты для задания позиции, метод завершит выполнение\nи не покажет блок (будет исправлено в ISLCOMPONENTS-546).
", "optional": true, "types": [ "jQuery", "BEM", "Object" ] }, { "name": "param.top", "description": "отступ сверху, в пикселях
", "optional": false, "types": [ "Number" ] }, { "name": "param.left", "description": "отступ слева, в пикселях
", "optional": false, "types": [ "Number" ] } ], "returns": [], "deprecated": false, "final": false, "access": "public", "scope": "instance" }, { "name": "repaint", "description": "Перерисовывает блок.
\nПри вызове напаравление раскрытия будет выбрано заново согласно\njs-параметрам блока и текущему viewport.
Eсли блок в момент вызова скрыт, он будет показан в своей предыдущей позиции.
\n", "params": [], "returns": [ { "description": "", "types": [ "BEM.DOM" ] } ], "deprecated": false, "final": false, "access": "public", "scope": "instance" }, { "name": "repaintShadowIfNeeded", "description": "Вызывает перерисовку для тени в IE9.
\nНужно вызвать сразу после смены контента в попапе(в текущем тике eventloop, не в следующем).\nhttps://st.yandex-team.ru/ISLCOMPONENTS-180
\n", "params": [], "returns": [ { "description": "", "types": [ "BEM.DOM" ] } ], "deprecated": false, "final": false, "access": "public", "scope": "instance" }, { "name": "getCurrPos", "description": "Возвращает текущую позицию блока.
\n", "params": [], "returns": [ { "description": "Объект с координатами left, top, которые содержат координаты\nблока в пикселях.
Возвращает настройки текущего направления раскрытия.
\n", "params": [], "returns": [ { "description": "Возвращает false если направление не было рассчитано\nили у этого блока нет направления(пример: popup_position_fixed)
Устанавливает содержимое блока.
\n", "params": [ { "name": "content", "description": "jQuery-элемент или строка, используемые в качестве содержимо��о.
", "optional": false, "types": [ "String", "jQuery" ] } ], "returns": [ { "description": "", "types": [ "BEM.DOM" ] } ], "deprecated": false, "final": false, "access": "public", "scope": "instance" }, { "name": "isShown", "description": "Возвращает true, если блок в данный момент видим.
Блок считается видимым начиная с момента начала\nfade-in анимации и перстает быть видимым в момент\nокончания fade-out анимации.
\n", "params": [], "returns": [ { "description": "", "types": [ "Boolean" ] } ], "deprecated": false, "final": false, "access": "public", "scope": "instance" }, { "name": "setParent", "description": "Устанавливает родительский попап.
\nДочерние попапы автоматически закрываются при закрытии родителя.\nСвязь автоматически удалится при скрытии дочернего попапа.
\n", "params": [ { "name": "родительский", "description": "попап
", "optional": false, "types": [ "BEM.DOM" ] } ], "returns": [ { "description": "", "types": [ "BEM.DOM" ] } ], "deprecated": false, "final": false, "access": "public", "scope": "instance" }, { "name": "addChild", "description": "Добавляет дочерний попап к этому блоку.
\nДочерние попапы автоматически закрываются при закрытии родителя.\nСвязь автоматически удалится при скрытии дочернего попапа.
\n", "params": [ { "name": "Дочерний", "description": "попап.
", "optional": false, "types": [ "BEM.DOM" ] } ], "returns": [ { "description": "Дочерний попап.
", "types": [ "BEM.DOM" ] } ], "deprecated": false, "final": false, "access": "public", "scope": "instance" }, { "name": "removeChild", "description": "Разрывает связь с дочерним попапом.
\nПри этом дочерний попап становится независимым и больше не будет\nавтоматически скрываться при скрытии родителя.
\n", "params": [ { "name": "дочерний", "description": "попап
", "optional": false, "types": [ "BEM.DOM" ] } ], "returns": [], "deprecated": false, "final": false, "access": "public", "scope": "instance" }, { "name": "_bindFocusEvents", "description": "Привязывает события слежения за фокусом.
\n", "params": [], "returns": [], "deprecated": false, "final": false, "access": "protected", "scope": "instance" }, { "name": "_unbindFocusEvents", "description": "Отвязывает от элемента ранее установленные события.
\nОбратная функция для _bindFocusEvents().
\n", "params": [], "returns": [], "deprecated": false, "final": false, "access": "protected", "scope": "instance" }, { "name": "_onLastFocusedKeyDown", "description": "Вызывается на нажатие клавиши на последнем элементе, на котором стоял фокус до того,\nкак началась магия с зацикливанием.
\n", "params": [], "returns": [], "deprecated": false, "final": false, "access": "protected", "scope": "instance" }, { "name": "_onFirstFocusableKeyDown", "description": "Вызывается на нажатие клавиши на первом элементе, на который можно поставить фокус\nвнутри выпадушки.
\nПереопределяется на модификаторе popup_position_fixed.
\n", "params": [], "returns": [], "deprecated": false, "final": false, "access": "protected", "scope": "instance" }, { "name": "_onLastFocusableKeyDown", "description": "Вызывается на нажатие клавиши на последнем элементе, на который можно поставить фокус\nвнутри выпадушки.
\nПереопределяется на модификаторе popup_position_fixed.
\n", "params": [], "returns": [], "deprecated": false, "final": false, "access": "protected", "scope": "instance" }, { "name": "_returnFocus", "description": "Возвращает фокус на элемент, имевший фокус до открытия выпадушки.
\n", "params": [], "returns": [], "deprecated": false, "final": false, "access": "protected", "scope": "instance" }, { "name": "setViewport", "description": "Устанавливает элемент-"окно", в которое попап должен быть вмещен.
\nЕсли элемент задан, то при показе будет выбрано такое\nнаправление раскрытия (из разрешенных), при котором максимальная\nплощадь попапа уместится внутри окна.
\nМетод НЕ вызывает перерисовку. В случае, если на момент вызова блок\nуже показывается позиция пересчитана не будет.
\n", "params": [ { "name": "viewport", "description": "DOM-элемент, в который должен вместиться попап.
", "optional": false, "types": [ "jQuery" ] } ], "returns": [ { "description": "", "types": [ "BEM.DOM" ] } ], "deprecated": false, "final": false, "access": "public", "scope": "instance" }, { "name": "destruct", "description": "Уничтожает блок и его потомкоа
\nУбирает подложку из пула, если этот блок\nеё туда положил.
\n", "params": [], "returns": [ { "description": "", "types": [ "BEM.DOM" ] } ], "deprecated": false, "final": false, "access": "public", "scope": "instance" }, { "name": "_pushTailPos", "description": "Смещает позицию хвостика на указанные во втором аргументе координаты с учётом текущей позиции.
\n", "params": [ { "name": "key", "description": "Уникальный ключ направления
", "optional": true, "types": [ "String" ] }, { "name": "offset", "description": "Объект, описывающий позицию для смещения
", "optional": false, "types": [ "Object" ] } ], "returns": [ { "description": "", "types": [ "block" ] } ], "deprecated": false, "final": false, "access": "public", "scope": "instance" }, { "name": "isDivEnough", "description": "Метод, позволяющий выбрать между div и iframe\nпо кастомным факторам.
Создаёт iframe подложку.
NOTE: Если нет owner, то в params хэш с left, top
NOTE: Нужно обнулить, потому что мы не знаем, на сколько изменилось окно браузера.
\n", "types": [], "access": "public", "scope": "instance" } ], "events": [ { "name": "show", "description": "Генерируется при показе блока.
\nЕсли включена анимация, то генерируется сразу\nв момент ее начала.
", "params": [] }, { "name": "hide", "description": "Генерируется при скрытии блока.
\nЕсли включена анимация, то генерируется по ее\nокончании.
", "params": [] } ], "mods": [ { "name": "adaptive", "value": "yes", "methods": [ { "name": "getScrollEvents", "description": "Возвращает массив с именами событий скрола.\nСделал так для удобного доопределения с уровня тачей.
\n", "params": [], "returns": [ { "description": "", "types": [ "Array" ] } ], "deprecated": false, "final": false, "access": "protected", "scope": "instance" }, { "name": "onScroll", "description": "Обработчик события scroll.\nПодчищает кэши, инициирует перерисовку блока.
Уничтожает блок, выключает адаптивность (отписывается от события scroll на DOM-элементе блока).
Попап, автоматически меняющий направление\nраскрытия при изменении размеров окна браузера или прокрутке.
\nНаправление выбирается из js-параметра directions таким образом, чтобы\nна экране отображалась максимум содержимого попапа.
Метод предназначен для проигрывания анимации показа блока.
\nВыполняется при показе блока, когда модификатор\n_visibility_visible уже установлен.
По умолчанию проигрывает fade-in анимацию.\nПереопределите этот метод для реализации другой анимации.
\n", "params": [], "returns": [], "deprecated": false, "final": false, "access": "protected", "scope": "instance" }, { "name": "beforeHide", "description": "Метод предназначен для проигрывания анимации скрытия блока.
\nВыполняется перед скрытием блока. В момент вызова\nмодификатор _visibility_visible еще не снят.
По умолчанию проигрывает fade-out анимацию.\nПереопределите этот метод для реализации другой анимации.
\nВАЖНО: при реализации нестандартной анимации, необходимо\nвызвать callback по ее окончании.
\n", "params": [ { "name": "callback", "description": "функция, которую необходимо вызвать\nпо окончании анимации. Не принимает аргументов и не возвращает\nникаких значений.
", "optional": false, "types": [ "function" ] } ], "returns": [], "deprecated": false, "final": false, "access": "protected", "scope": "instance" } ], "properties": [], "events": [], "description": "Анимированный попап.
\nПри показе и скрытии проигрывает анимацию.
" }, { "name": "autoclosable", "value": "yes", "methods": [], "properties": [], "events": [ { "name": "click-outside", "description": "Генерируется при клике за пределами попапа.
\nПо окончании обработки события блок будет скрыт. Для того, чтобы\nотменить это поведение и оставить блок видимым, можно воспользоваться\nметодом event.preventDefault().
", "params": [ { "name": "domEvent", "description": "DOM-событие нажатия
", "optional": false, "types": [ "DOMEvent" ] } ] } ], "description": "Попап, автоматически закрывающийся при нажатии за его пределами.
" }, { "name": "behaviour", "value": "scrollable", "methods": [], "properties": [], "events": [], "description": "Попап с прокруткой своего содержимого
" }, { "name": "body-scroll", "value": "no", "methods": [], "properties": [], "events": [], "description": "" }, { "name": "poll", "value": "size", "methods": [], "properties": [], "events": [], "description": "Попап с динамическими размерами.
\nЧерез определенные интервалы времени автоматически подстраивает размеры\nпопапа под размеры контента.
" }, { "name": "position", "value": "fixed", "methods": [ { "name": "addChild", "description": "Отключает у дочернего попапа слежение за скролом страницы.
\n", "params": [ { "name": "Дочерний", "description": "попап.
", "optional": false, "types": [ "BEM.DOM" ] } ], "returns": [], "deprecated": false, "final": false, "access": "public", "scope": "instance" } ], "properties": [], "events": [], "description": "" }, { "name": "type", "value": "modal", "methods": [ { "name": "show", "description": "Показывает попап как модальное окно.
\n", "params": [ { "name": "position", "description": "координаты left, top
Убирает обертку попапа.
\n", "params": [], "returns": [], "deprecated": false, "final": false, "access": "public", "scope": "instance" } ], "properties": [], "events": [], "description": "" } ] }