SnapSVG
HTML
<script src="http://tedbeer.net/lib/snap.svg-min.js"></script>
<div id="container" />
CSS
#container {
border: 1px dotted red;
width: 400px;
height: 200px;
}
JavaScript
var paper = Snap(200, 100);
document.getElementById('container').appendChild(paper.node);
paper.rect(0,0,400, 200, 100, 100).attr({fill: '#F93'});
//does not work - rectangle must not be clipped
paper.attr({
width: 400,
height: 200
});
paper.rect(0,0,400, 200, 100, 100).attr({fill: '#9F3'});
paper.drag();