Simple off-canvas implementation that support touch events and such