It can be easily be done using only a couple of JavaScript lines of code:
First thing we need to do is make sure that the side navigation is collapsed.(function(ut, $) { var TREE_NAV_WIDGET_KEY = 'nav'; $(window).on('theme42ready', function() { /* Make sure that the navigation menu is collapsed on page load */ if (ut.toggleWidgets.isExpanded(TREE_NAV_WIDGET_KEY)){ ut.toggleWidgets.collapseWidget(TREE_NAV_WIDGET_KEY); } /* Expand on mouse over, collapse on mouse out */ $('.apex-side-nav.js-navCollapsed .t-Body-nav').hover( function(){ ut.toggleWidgets.expandWidget(TREE_NAV_WIDGET_KEY); }, function() { ut.toggleWidgets.collapseWidget(TREE_NAV_WIDGET_KEY); } ); }); })(apex.theme42, apex.jQuery);
Then we add a hovering handler using the jQuery .hover() on the navigation menu container.
You'll end up with something like this:
You can have a look at it in action in my Demo Application
Edit 09-27
Now triggers the custom navigation menu event.
Also calls the delayResize function so that any sticky headers get resized correctly when the side navigation menu is expanded and collapsed.
Edit 09-28
Rewrote to use namespacing, wrapped using the "theme42ready" event and replaced the collapsed/expand calls with the universal theme functions.