This is called off-canvas menu.
The plugin linked below has the basic functionality, but I didn’t see the hamburger menu button in their demos. I’m sure you can easily hack your way around that!
https://wordpress.org/plugins/8degree-fly-menu-lite/
Menu styles are defined in the theme. You could use a plugin to override the theme’s default menu system or you can create a child theme and add the menu yourself.