API
BX.UI.Notification.Center
BX.UI.Notification.Center
— основной программный интерфейс для работы с нотификациями. Является объектом-синглтоном.
BX.UI.Notification.Center.notify([options])
Показывает нотификацию на странице с указанными настройками. Возвращает объект класса BX.UI.Notification.Balloon
.
options
{Object}Коллекция опций нотификации. Все настройки являются необязательными.
content
{string|Element}Содержимое нотификации. HTML-строка или DOM-объект.
position
{string}Позиция нотификации на странице. Допустимые значения:
top-left
- Верхний левый угол.top-center
- Центральная точка верхней границы.top-right
- Верхний правый угол. Значение по умолчанию.bottom-left
- Нижный левый угол.bottom-center
- Центральная точка нижней границы.bottom-right
- Нижний правый угол.
autoHide
{boolean}Автоматически закрыть нотификацию по таймауту. По умолчанию
true
.autoHideDelay
{number}Время задержки перед автоматическим закрытием в миллисекундах. По умолчанию
8000
.zIndex
{number}Z-index нотификации. По умолчанию
3200
.closeButton
{boolean}Отображать кнопку закрытия нотификации. По умолчанию
true
.category
{string}Название категории. Нотификации с одинаковой категорией заменяют друг друга.
actions
{Array}Массив действий нотификации. Каждое действие — объект со следующими ключами:
title
{string} — Название действия.href
{string} — Ссылка действия.events
{object} — коллекция обработчиков DOM-событий.id
{string} — идентификатор действия.
BX.UI.Notification.Center.notify({ content: "Файл успешно удален", actions: [ { title: "Корзина", href: "/trash/" }, { title: "Отмена", events: { click: function(event, balloon, action) { balloon.close(); } } } ] });
id
{string}
Идентификатор нотификации. Используется совместно с BX.UI.Notification.Center.getBalloonById.
type
{string}
Название класса, определяющего внешний вид нотификации. Класс должен наследоваться от BX.UI.Notification.Balloon и реализовать метод render.
class MyBalloon extends BX.UI.Notification.Balloon { /** * @protected * @return {Element} */ render() { var content = this.getContent(); return BX.create("div", { props: { className: "my-balloon" }, html: BX.type.isDomNode(content) ? null : content, children: BX.type.isDomNode(content) ? [content] : [] }) } } BX.UI.Notification.Center.notify({ content: "Custom Balloon", type: "MyBalloon" });
render
{function}
Функция, возвращающая верстку нотификации. Может использоваться, как упрощенная замена опции type
.
BX.UI.Notification.Center.notify({ content: "Custom Balloon", autoHideDelay: 5000, render: function() { return BX.create("div", { props: { className: "my-balloon" }, html: this.getContent() + " " + this.getData().time }) }, data: { time: Date.now() } });
width
{number|"auto"}
Ширина нотификации в пикселах. Используйте значение auto, чтобы ширина нотификации зависела от контента. По умолчанию 400
.
data
{object}
Набор своих данных для нотификации, который можно использовать для создания произвольной верстки нотификации.
events
{?object.<string, function>}
Коллекция обработчиков событий.
BX.UI.Notification.Center.notify({ content: "Balloon Events", position: "top-center", autoHideDelay: 10000, events: { onOpen: function(event) { var balloon = event.getBalloon(); console.log("onOpen", balloon.getContent()); }, onClose: function(event) { console.log("onClose"); }, onMouseEnter: function(event) { console.log("onMouseEnter"); }, onMouseLeave: function(event) { console.log("onMouseLeave"); } } });
BX.UI.Notification.Center.getBalloonById(balloonId)
Возвращает нотификацию (объект класса BX.UI.Notification.Balloon
) по идентификатору. null
— если нотификация не найдена.
balloonId
{string} — идентификатор нотификации.BX.UI.Notification.Center.getBalloonByCategory(category)
Возвращает нотификацию (объект класса BX.UI.Notification.Balloon
) по названию категории. null
— если нотификация не найдена.
category
{string} — название категории.BX.UI.Notification.Center.setDefaultPosition(position)
Устанавливает положение нотификаций на странице по умолчанию.
position
{string} — позиция нотифкаций по умолчанию. Подробнее см. в BX.UI.Notification.Center.notify.BX.UI.Notification.Center.setBalloonDefaults(options)
Устанавливает опции нотификации по умолчанию.
options
{object} — коллекция опций нотификации. Подробнее см. в BX.UI.Notification.Center.notify.BX.UI.Notification.Center.setBalloonDefaults({ autoHideDelay: 9999, width: 600 });
BX.UI.Notification.Center.setStackDefaults([position][, options])
Уставливает настройки стека.
position
{string} — позиция стека.options
{object} — опции стека, подробнее см. описание BX.UI.Notification.Stack.BX.UI.Notification.Center.setStackDefaults( "top-left", { spacing: 10, offsetX: 10, offsetY: 10, } );
Опции по умолчанию для всех стеков.
BX.UI.Notification.Center.setStackDefaults({ spacing: 20, offsetX: 20, offsetY: 20, balloonType: "CircleBalloon" });
События
UI.Notification.Balloon:onOpen
— событие открытия нотификации.UI.Notification.Balloon:onClose
— событие закрытия нотификации.UI.Notification.Balloon:onMouseEnter
— событие возникает при наведении курсора мыши на нотификацию.UI.Notification.Balloon:onMouseLeave
— событие возникает при покидании курсора мыши из области нотификации.BX.UI.Notification.Balloon
BX.UI.Notification.Balloon
- класс представляет отдельную нотификацию.
new BX.UI.Notification.Balloon(options)
options
{Object}stack
{BX.UI.Notification.Stack}- Остальные опции см. в BX.UI.Notification.Center.notify.
Коллекция опций нотификации.
Стек, в котором должна появится нотификация. Обязательный параметр.
Методы класса
balloon.show()
— показывает нотификацию на странице.balloon.close()
— закрывает нотификацию.balloon.update(options)
— перерисовывает нотификацию с новыми данными.options
{object} — коллекция опций нотификации. Подробнее см. в BX.UI.Notification.Center.notify.
balloon.adjustPosition()
— позиционирует нотификацию в стеке.balloon.getId()
— возвращает идентификатор нотификации.balloon.setCloseButtonVisibility(visibility)
— устанавливает видимость кнопки закрытия.visibility
{boolean} — флаг видимости кнопки закрытия.balloon.isCloseButtonVisible()
— возвращаетtrue
, если отображается кнопка закрытия нотификации.balloon.getContent()
— возвращает содержимое нотификации.balloon.setContent(content)
— устанавливает содержимое нотификации.content
{string|Element} — содержимое нотификации. HTML-строка или DOM-объект.balloon.getWidth()
— возвращает ширину нотификации.balloon.setWidth(width)
— устанавливает ширину нотификации.width
{number} — значение ширины нотификации в пикселях.balloon.getHeight()
— возвращает высоту нотификации.balloon.getZIndex()
— возвращает z-index нотификации.balloon.setZIndex(zIndex)
— устанавливает z-index нотификации.zIndex
{number} — значение z-index.balloon.getCategory()
— возвращает категорию нотификации.null
— если категория не установлена.balloon.setCategory(category)
— устанавливает категорию нотификации.category
{string} - название категории.balloon.setActions(actions)
— устанавливает действия нотификации.actions
— массив действий. Подробнее см. в BX.UI.Notification.Center.notify.balloon.getActions()
— возращает массив действий (объекты классаBX.UI.Notification.Action
).balloon.getAction(id)
— возвращает действие (объект классаBX.UI.Notification.Action
) по идентификатору.id
{string} — идентификатор действия.balloon.getContainer()
— возвращает ссылку на контейнер (DOM-элемент) нотификации.balloon.setCustomRender(render)
— устанавливает callback-функцию, которая формирует внешний вид нотификации.render
{function} — callback-функция.balloon.getCustomRender()
— возвращает функцию, которая создает верстку нотификации.balloon.getStack()
— возвращает стек (объект класса BX.UI.Notification.Stack), в котором находится нотификация.balloon.activateAutoHide()
— активирует автоматическое закрытие нотификации.balloon.deactivateAutoHide()
— деактивирует автоматическое закрытие нотификации.balloon.setAutoHide(autoHide)
— устанавливает или сбрасывает режим автоматического закрытия.balloon.getAutoHide()
— возвращаетtrue
, если включен режим автоматического закрытия.balloon.setAutoHideDelay(delay)
— устанавливает время задержки перед автоматическим закрытием.delay
{number} — значение задержки в миллисекундах.balloon.getAutoHideDelay()
— возвращает время задержки перед автоматическим закрытием.balloon.getData()
— возвращает коллекцию данных нотификации.balloon.setData(data)
— устанавливает произвольные данные для нотификации.data
{object} - коллекция с произвольными данными нотификации.
BX.UI.Notification.Stack
Класс BX.UI.Notification.Stack
представляет виртуальный стек, в котором будут показываться нотификации. Стек определяет их местоположение на странице.
new BX.UI.Notification.Stack(options)
options
{Object}Коллекция опций стека.
position
{string}top-left
- Верхний левый угол.top-center
- Центральная точка верхней границы.top-right
- Верхний правый угол. Значение по умолчанию.bottom-left
- Нижный левый угол.bottom-center
- Центральная точка нижней границы.bottom-right
- Нижний правый угол.spacing
{number}offsetX
{number}offsetY
{number}newestOnTop
{boolean}balloonType
{string}id
{string}
Позиция стека на странице. Допустимые значения:
Отступ между нотификациями в пикселях. По умолчанию
25
.Отступ стека нотификаций от левой или правой границы страницы в пикселях. По умолчанию
20
.Отступ стека нотификаций от верхней или нижней границы страницы в пикселях. По умолчанию
20
.Если равен true, новые нотификации будут добавляться в начало стека. По умолчанию
false
.Имя класса, экземпляры которого будут создаваться в стеке. По умолчанию
BX.UI.Notification.Balloon
.Идентификатор стека.
Методы класса
stack.adjustPosition([balloon])
— позиционирует все нотификации в стеке. Если указанballoon
, позиционирует только указанную нотификацию.balloon
— объект класса BX.UI.Notification.Balloon.
stack.add(balloon)
— добавляет нотификацию в стек.balloon
— объект класса BX.UI.Notification.Balloon.
stack.remove(balloon)
— удаляет нотификацию из стека.balloon
— объект класса BX.UI.Notification.Balloon.
stack.getId()
— возвращает идентификатор стека.stack.getBalloons()
— возвращает массив нотификаций.stack.getPosition()
— возвращает позицию стека на странице.stack.getSpacing()
— возвращает отступ между нотификациями.stack.setSpacing(spacing)
— устанавливает отступ между нотификациями.spacing
{number} — отступ между нотификациями в пикселях.
stack.getOffsetX()
— возвращает смещение от левой/правой границы страницы.stack.setOffsetX(offset)
— устанавливает смещение от левой/правой границы страницы.offset
{number} — значение смещения в пикселях.
stack.getOffsetY()
— возвращает смещение от верхней/нижней границы страницы.stack.setOffsetY(offset)
— устанавливает смещение от верхней/нижней границы страницы.offset
{number} — значение смещения в пикселях.
stack.getHeight()
— возвращает высоту стека.stack.isNewestOnTop()
— возвращает true, если нотификации добавляются в начало стека.stack.setNewestOnTop(onTop)
— устанавливает режим добавления новых нотификаций в стек.onTop
— флаг режима добавления новых нотификаций. Если равен true, нотификации добавляются в начало стека.
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.