Skip to content

Latest commit

 

History

History
33 lines (17 loc) · 2.23 KB

ru_nav_alg.md

File metadata and controls

33 lines (17 loc) · 2.23 KB

Алгоритм поиска элемента

Алоритм справледлив для любого направления. Говоря ниже "верхняя грань" имеется в виду грань совпадающая с направлением движения. Для движения вверх - верхняя, вниз - нижняя, вправо - правая, влево - левая.

Пример: есть элементы навигации, элемент в фокусе обозначен красным цветом.

slide1

Юзер нижмает кнопку вверх. Первое что происходит - отсеиваютя элементы верхняя грань которых ниже чем верхняя грань элемента в фокусе.

slide2

Находятся элементы, грани которых пересекаются по оси перпендикулярной направлению. Если такие элементы находятся, их приоритет становится выше и остальные отсеиваются.

slide3

Из оставшихся элементов находится тот чья верхняя грань ближе всего к верхней грани элемента в фокусе. Это и есть искомый элемент.

slide4

Если на втором шаге пересекающихся элементов не было найдено с оставшимися элементами происходит тоже самое. Находится самый ближайший.

slide5

Это не баг, это фича.

slide6

В этом примере двигаясь по вертикали из элемента B в элемент A перейти можно, но не наоборот. Это происходит потому что нижняя грань элемента A, ниже нижней грани элемента B. Таким образом A одновременно и выше и ниже B