{ "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.

", "optional": false, "types": [ "String" ] }, { "name": "directions.axis", "description": "

Ось попапа. Допустимые значения:\n left, right, center, middle, bottom, top.

", "optional": true, "types": [ "String" ] }, { "name": "directions.offset", "description": "

Смещение попапа по направлениям top, right, bottom, left\n относительно центра owner.\n Если указано число, то это значение будет раскрыто для\n всех направлений.

", "optional": true, "types": [ "Object", "Number" ] }, { "name": "directions.tail", "description": "

Параметры хвоста в контексте направления раскрытия.

", "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", "Number" ] }, { "name": "directions.position", "description": "

Фиксированное положение попапа.

", "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

Показ блока относительно другого блока:

\n
popup.show(otherBlock);
\n

Показ блока относительно DOM-элемента:

\n
popup.show($('.some-class');)
\n

Показ блока, в заданной позиции:

\n
popup.show({top: 100, left: 100});
\n

Если параметры не переданы, просто завершает работу не показывая блок.

\n

В случае, если установлен модификатор _animate_yes и не\nустановлен модификатор _fade-in_no, проигрывает анимацию.

\n

Устанавливает модификатор _visibility_visible и генерирует событие show\nдо начала анимации.

\n", "params": [ { "name": "param", "description": "

Объект 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, проигрывает анимацию.

\n

Удаляет модификатор visibility и генерирует событие hide\nпо окончании анимации, если анимация включена, или моментально,\nесли анимация выключена.

\n", "params": [], "returns": [ { "description": "", "types": [ "BEM.DOM" ] } ], "deprecated": false, "final": false, "access": "public", "scope": "instance" }, { "name": "toggle", "description": "

Показывает блок, если он скрыт или скрывает его, если он показан.

\n

В зависимости от текущего соcтояния, вызывает либо show, либо hide.

\n

Если установлен модификатор _animate_yes, прогрывает анимацию. По отдельности\nанимацию показа и скрытия можно также отключить при помощи модификаторов\n_fade-in_no и _fade-out_no соответственно.

\n

Устанавливает модификатор visibility в значение visible или удаляет его по окончании\nанимации (или моментально, если соответствующая анимация отключена).

\n", "params": [ { "name": "owner", "description": "

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.

\n

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блока в пикселях.

", "types": [ "Object" ] } ], "deprecated": false, "final": false, "access": "public", "scope": "instance" }, { "name": "getCurrDirection", "description": "

Возвращает настройки текущего направления раскрытия.

\n", "params": [], "returns": [ { "description": "

Возвращает false если направление не было рассчитано\nили у этого блока нет направления(пример: popup_position_fixed)

", "types": [ "Object", "Boolean" ] } ], "deprecated": false, "final": false, "access": "public", "scope": "instance" }, { "name": "setContent", "description": "

Устанавливает содержимое блока.

\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, если блок в данный момент видим.

\n

Блок считается видимым начиная с момента начала\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по кастомным факторам.

\n", "params": [], "returns": [ { "description": "", "types": [ "Boolean" ] } ], "deprecated": false, "final": false, "access": "public", "scope": "instance" }, { "name": "_createUnder", "description": "

Создаёт iframe подложку.

\n", "params": [], "returns": [ { "description": "", "types": [ "jQuery" ] } ], "deprecated": false, "final": false, "access": "public", "scope": "instance" } ], "properties": [ { "name": "_owner", "deprecated": false, "description": "

NOTE: Если нет owner, то в params хэш с left, top

\n", "types": [], "access": "public", "scope": "instance" }, { "name": "_visibilityFactor", "deprecated": false, "description": "

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Подчищает кэши, инициирует перерисовку блока.

\n", "params": [ { "name": "e", "description": "", "optional": false, "types": [ "Event" ] } ], "returns": [], "deprecated": false, "final": false, "access": "public", "scope": "instance" }, { "name": "destruct", "description": "

Уничтожает блок, выключает адаптивность (отписывается от события scroll на DOM-элементе блока).

\n", "params": [], "returns": [], "deprecated": false, "final": false, "access": "public", "scope": "instance" } ], "properties": [], "events": [], "description": "

Попап, автоматически меняющий направление\nраскрытия при изменении размеров окна браузера или прокрутке.

\n

Направление выбирается из js-параметра directions таким образом, чтобы\nна экране отображалась максимум содержимого попапа.

" }, { "name": "animate", "value": "yes", "methods": [ { "name": "afterShow", "description": "

Метод предназначен для проигрывания анимации показа блока.

\n

Выполняется при показе блока, когда модификатор\n_visibility_visible уже установлен.

\n

По умолчанию проигрывает fade-in анимацию.\nПереопределите этот метод для реализации другой анимации.

\n", "params": [], "returns": [], "deprecated": false, "final": false, "access": "protected", "scope": "instance" }, { "name": "beforeHide", "description": "

Метод предназначен для проигрывания анимации скрытия блока.

\n

Выполняется перед скрытием блока. В момент вызова\nмодификатор _visibility_visible еще не снят.

\n

По умолчанию проигрывает 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

", "optional": true, "types": [ "Object" ] } ], "returns": [ { "description": "", "types": [ "BEM" ] } ], "deprecated": false, "final": false, "access": "public", "scope": "instance" } ], "properties": [], "events": [], "description": "" }, { "name": "wrapped", "value": "yes", "methods": [ { "name": "destruct", "description": "

Убирает обертку попапа.

\n", "params": [], "returns": [], "deprecated": false, "final": false, "access": "public", "scope": "instance" } ], "properties": [], "events": [], "description": "" } ] }