Old school D3 from simpler times
Bounded Force Layout
This D3 example shows how to constrain the position of nodes within the rectangular bounds of the containing SVG element. As a side-effect of updating the node's
cy attributes, we update the node positions to be within the range [radius, width - radius] for x, [radius, height - radius] for y. If you prefer, you could use the
each operator to do this as a separate step, rather than as a side-effect of setting attributes.