Constructor
new Moving(mainDiv, startScreen)
Parameters:
Name | Type | Description |
---|---|---|
mainDiv |
JQuery | элемент, в котором располагается панель. Должен содержать класс rb-wrapper. |
startScreen |
ScreenModel | стартовая модель контента |
Members
afterRenderDispatcher
Диспетчер, выполняющий зарегистрированные функции после рендеринга контента моделей на странице после перехода Функциям в аргументы передается side и instance текущей панели.
beforeMoveDispatcher
Диспетчер, выполняющий зарегистрированные функции до выполнения перехода к новой ячейке в панели Функциям в аргументы передается side, instance текущей панели и флаг isWrongStep - удачный переход или нет. Если флаг равен null, то осуществляется moveBack. Функция может вернуть флаг или Promise. Если флаг равен false или Promise возвращает false, то переход не будет осуществлен.
beforeRenderDispatcher
Диспетчер, выполняющий зарегистрированные функции до рендеринга контента моделей на странице после перехода. Функциям в аргументы передается side и instance текущей панели.
Methods
activate()
Активировать панель. Переводит фокус на панель, и, как следствие, панель ловит все события нажатия клавиш.
addPlugin(plugin)
Добавить плагин, расширяющий функционал панели, к общему списку плагинов.
Parameters:
Name | Type | Description |
---|---|---|
plugin |
IPlugin | добавляемый плагин |
animateWrongSide(side) → {Promise}
Анимировать запрещенное перемещение в одну из сторон. В панели в эту сторону перемещение может быть запрещено, но будет анимировано, будто запрещено.
Parameters:
Name | Type | Description |
---|---|---|
side |
string | сторона, в которую осуществляется переход |
Returns:
promise о завершении действия
- Type
- Promise
configure(config)
Применить конфигурацию к панели
Parameters:
Name | Type | Description |
---|---|---|
config |
Moving~config | конфигурация |
destroy()
Уничтожить панель
getControlManager() → {ControlManager}
Получить менеджер управления
Returns:
ControlManager
- Type
- ControlManager
getScreenManager() → {ScreenManager}
Получить менеджер моделей контента
Returns:
ScreenManager
- Type
- ScreenManager
goToScreen(toScreen) → {Promise}
Находит кратчайший путь до указанной модели и пошагово переходит от текущей ячейки к той ячейке, в которой располагается найденная модель.
Parameters:
Name | Type | Description |
---|---|---|
toScreen |
ScreenModel | Искомая модель контента |
Returns:
promise о завершении переходов к намеченной цели
- Type
- Promise
move(side, isSaveHistoryopt) → {Promise|undefined}
Осуществить переход в указанную сторону.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
side |
string | сторона, в которую осуществляется переход |
||
isSaveHistory |
Boolean |
<optional> |
true | сохранять ли осуществляемый переход в историю переходов |
Returns:
promise о завершении действия, либо undefined, если переход не требуется
- Type
- Promise | undefined
moveBack() → {Promise|undefined}
Осуществить откат последнего удачного хода, воспользовавшись историей переходов.
Returns:
promise о завершении действия, либо undefined, если переход не требуется
- Type
- Promise | undefined
reload()
Перезагрузить все панели на странице. Перезагрузка предполагает обновление верстки ячейки панели, сброс состояния в верстке. Если в элементах верстки есть подписки, необходимо позаботиться об отписке и последующей подписке к новым элементам верстки.
Properties:
Name | Type | Description |
---|---|---|
side |
string | сторона, с которой будет перезагружаться ячейка панели относительно текущей ячейки. |
removePlugin(plugin)
Удалить плагин из общего списка плагинов
Parameters:
Name | Type | Description |
---|---|---|
plugin |
IPlugin | удаляемый плагин |
resetConfig()
Сбросить конфигурацию панели к значению по умолчанию (какое именно - см. в коде).
setScreen(screen, isSaveHistoryopt) → {Promise}
Установить модель контента в текущую ячейку панели.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
screen |
ScreenModel | Устанавливаемая модель контента |
|
isSaveHistory |
Boolean |
<optional> |
Сохранять ли устанавливаемую модель в историю переходов |
Returns:
promise о завершении установки модели
- Type
- Promise
Type Definitions
config
Конфигурация панели
Type:
- Object
Properties:
Name | Type | Attributes | Description |
---|---|---|---|
wrongTime1 |
number |
<optional> |
Время, затрачиваемое на первую часть неудачного перехода |
wrongTime2 |
number |
<optional> |
Время, затрачиваемое на вторую часть неудачного перехода |
correctTime |
number |
<optional> |
Время, затрачиваемое на удачный переход |
wrongEasing1 |
string |
<optional> |
Анимация первой части неудачного перехода. |
wrongEasing2 |
string |
<optional> |
Анимация второй части неудачного перехода. |
correctEasing |
string |
<optional> |
Анимация удачного перехода. |
hideArrowsAfterTime |
boolean |
<optional> |
Скрывать ли стрелки перемещения после некоторого времени, чтобы можно было нажимать на элементы, которые находятся под этими стрелками. |
hideArrowsTime |
number |
<optional> |
Через какой промежуток времени скрывать стрелки перемещения |
showArrowsOutside |
boolean |
<optional> |
Показывать ли стрелки перемещения снаружи от панели (иначе показывать внутри панели) |
showArrowsOnHover |
boolean |
<optional> |
Показывать ли стрелки при наведении мыши (иначе показывать всегда) |
loadingHtml |
string | null |
<optional> |
Верстка ожидания, показываемая во время, пока контент еще не был вставлен в панель |
leftKey |
string | number | Array.<(string|number)> |
<optional> |
Клавиши, при нажатии на которые будет сделан переход влево.
Могут использоваться строковые или числовые нотации клавиш. |
topKey |
string | number | Array.<(string|number)> |
<optional> |
Клавиши, при нажатии на которые будет сделан переход вверх. |
rightKey |
string | number | Array.<(string|number)> |
<optional> |
Клавиши, при нажатии на которые будет сделан переход вправо. |
bottomKey |
string | number | Array.<(string|number)> |
<optional> |
Клавиши, при нажатии на которые будет сделан переход вниз. |
maxHistoryLength |
number |
<optional> |
Максимальная длина хранимой истории удачных переходов. |
lockControls |
boolean |
<optional> |
Заблокированы ли элементы управления переходами, пока происходит анимация перехода (любые способы управления). |
showAdjacentScreens |
boolean |
<optional> |
Отображать ли старую ячейку при анимации перехода на новую ячейку панели. |
saveHistoryInPool |
boolean |
<optional> |
Хранить ли верстку ячеек панели, которые хранятся в истории переходов. |
pointersForSwipe |
number |
<optional> |
Количество пальцев, необходимых для свайпа при переходе на новую ячейку на мобильных устройствах. |
isDirectPath |
boolean |
<optional> |
Использовать ли при поиске кратчайшего пути до указанной модели только переходы от потомков к предкам и от предков к потомкам (иначе переходы по массивам предков и по массивам потомков тоже будут считаться отдельными переходами) |
savePrevious |
boolean |
<optional> |
сохранять ли предков (если шаг в сторону потомка) и потомков (если шаг в сторону предка), с которых был сделан переход, чтобы в дальнейшем вернутся в них при переходе обратно с ячейки, в которую был сделан переход. |
cyclicStep |
boolean |
<optional> |
делать ли цикличный переход в контексте массива моделей, в котором будет искаться новая модель. |
getRight |
Moving~getRight |
<optional> |
Функция, задающая алгоритм поиска ячейки, в которую должен быть осуществлен переход вправо |
getLeft |
Moving~getLeft |
<optional> |
Функция, задающая алгоритм поиска ячейки, в которую должен быть осуществлен переход влево |
getTop |
Moving~getTop |
<optional> |
Функция, задающая алгоритм поиска ячейки, в которую должен быть осуществлен переход вверх |
getBottom |
Moving~getBottom |
<optional> |
Функция, задающая алгоритм поиска ячейки, в которую должен быть осуществлен переход вниз |
getBottom(screen, cyclicStep)
Функция, задающая алгоритм поиска ячейки, в которую должен быть осуществлен переход вниз, то есть в сторону соседа снизу. По умолчанию смотрит, осуществлялись ли переходы влево-вправо, если последним таким был переход вправо, то берется модель, из которой был сделан шаг вправо и в контексте ее потомков от текущего потомка будет найден следующий потомок и возвращен в качестве результата. Если при этом стоит опция cyclicStep = true, то в случае самого нижнего потомка следующим будет возвращен самый верхний потомок. Если последним был переход влево, то берется модель, из которой был сделан шаг влево и в контексте ее предков от текущего предка будет найден следующий предок и возвращен в качестве результата. Если при этом стоит опция cyclicStep = true, то в случае самого нижнего предка следующим будет возвращен самый верхний предок. А если переходов влево-вправо не было, будет считаться, будто бы был сделан переход вправо, а если и это не помогло, будет считаться, будто был сделан переход влево. Если у модели нет предков, следующая модель не будет найдена.
Parameters:
Name | Type | Description |
---|---|---|
screen |
ScreenModel | текущая модель контента панели |
cyclicStep |
boolean | делать ли цикличный переход в контексте массива моделей, в котором будет искаться новая модель. |
getLeft(screen)
Функция, задающая алгоритм поиска ячейки, в которую должен быть осуществлен переход влево, то есть в сторону предка. По умолчанию берет опцию defaultParentIndex у экземпляра ScreenModel и ищет предка модели с этим индексом.
Parameters:
Name | Type | Description |
---|---|---|
screen |
ScreenModel | текущая модель контента панели |
getRight(screen)
Функция, задающая алгоритм поиска ячейки, в которую должен быть осуществлен переход вправо, то есть в сторону потомка. По умолчанию берет опцию defaultChildIndex у экземпляра ScreenModel и ищет потомка модели с этим индексом.
Parameters:
Name | Type | Description |
---|---|---|
screen |
ScreenModel | текущая модель контента панели |
getTop(screen, cyclicStep)
Функция, задающая алгоритм поиска ячейки, в которую должен быть осуществлен переход вверх, то есть в сторону соседа сверху. По умолчанию смотрит, осуществлялись ли переходы влево-вправо, если последним таким был переход вправо, то берется модель, из которой был сделан шаг вправо и в контексте ее потомков от текущего потомка будет найден предыдущий потомок и возвращен в качестве результата. Если при этом стоит опция cyclicStep = true, то в случае самого верхнего потомка следующим будет возвращен самый нижний потомок. Если последним был переход влево, то берется модель, из которой был сделан шаг влево и в контексте ее предков от текущего предка будет найден предыдущий предок и возвращен в качестве результата. Если при этом стоит опция cyclicStep = true, то в случае самого верхнего предка следующим будет возвращен самый нижний предок. А если переходов влево-вправо не было, будет считаться, будто бы был сделан переход вправо, а если и это не помогло, будет считаться, будто был сделан переход влево. Если у модели нет предков, следующая модель не будет найдена.
Parameters:
Name | Type | Description |
---|---|---|
screen |
ScreenModel | текущая модель контента панели |
cyclicStep |
boolean | делать ли цикличный переход в контексте массива моделей, в котором будет искаться новая модель. |