Build zoomable and pannable SVG canvas

I think we need a test for cases where the element does not yet exist.