Będzie Ci potrzebny EventListener reagujacy na 'mouseover':
https://developer.mozilla.org/en-US/docs/Web/Events
W HTML sobie utwórz wszystkie te menusy i ustaw tam gdzie mają być poprzez CSS. Następnie wszystkie submenusy ukryj (w CSS 'display: none'). I w EventListenerze po najechaniu na odpowiedni element menu możesz wybrać jedną z dwóch opcji:
1. W JS ustawiać 'display: block' (lub inline-block, w zależności jakiego konkretnego zachowania oczekujesz)
2. W JS dodawać utworzoną w CSS klasę, która ma zapisany atrybut 'display: block' (lub inline-block)
Gdy zabierzesz myszkę z określonych elementów, to musisz usunąć odpowiadające im EventListenery (bo, gdy najedziesz na element ponownie, to stworzy się kolejny Listener, a to nie jest dobre). Poza tym, musisz zrobić EventListenery reagujące na zdarzenie 'mouseout' - w nich ustaw, że dany element ma znikać (ustaw 'display: none' lub usuń klasę CSS, która pokazuje dany element).
Jeśli chcesz aby to było animowane (nie takie 0/1, czyli ukryj/pokaż), to albo zaprzęgnij sobie jQuery (aby użyć m.in: fadeIn/fadeOut), albo próbuj w JS robić przemieszczanie się DIVa z położenia bazowego do położenia, w którym chcesz aby ten DIV ostatecznie się znalazł. Do tego odpowiednie zapisy w CSS dla jakiejś animacji.