Control camera using mouse click and drag?

Take a look at the way this example is implemented. It’s a Orbit Control with a specific configuration that removes rotation. It might be all you need. There’s a relevant thread here as well.

In terms of limiting the movement of the camera, you could simply introduce a check in your animation loop so the camera is never outside a range you define?

Another option altogether would be to use an external library: Camera-controls by yomotsu has all you need and allows you to set boundaries as well.