Hola
Bueno, ciertamente se pueden hacer con JavaScript y es, hasta donde yo se, la manera más nomal, sin embargo tienen un problema y es que conllevan un montón de trabajo si quieres contemplar bien las diferencias entre navegadores.
Yo te recomendaría que los hicieras usando hojas de estilo.
Y para que puedas ver unos benos ejemplos, te mando esta dirección...
http://www.meyerweb.com/eric/css/edge/menus/demo.html
Suerte
Felicidad