Credo che questo sia quello che intendi:
http://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_sidenav_push_opacity
Nell'esempio linkato però il contenuto non viene "spostato" ma "compresso". Se vuoi un vero effetto off-canvas, devi impostare una misura esplicita per la larghezza del contenitore (o un min-width; 100%), e assicurarti che nel body non sia attivo lo scroll laterale (overflow-x: hidden).