More complete offcanvas functionality