Recently, I have been using trackball controls and I've come across a strange bug. When I pan and then zoom out from my new position, the controls start to behave erratically, pulling towards the origin (the further I pan, the worse the issue becomes).
To demonstrate this issue, I have created a fiddle. Simply pan away from the ball (right click + mouse move) and then zoom out.
While I'm not completely certain that the fault lies with the code, this example seems quite straightforward and foolproof.
These are the settings that I have enabled:
var controls = new THREE.TrackballControls(this.camera, this.renderer.domElement);
var radius = 14; // scalar value used to determine relative zoom distances
controls.rotateSpeed = 1;
controls.zoomSpeed = 1.2;
controls.panSpeed = 1;
controls.noZoom = false;
controls.noPan = false;
controls.staticMoving = false;
controls.dynamicDampingFactor = 0.3;
controls.minDistance = radius * 1.1;
controls.maxDistance = radius * 25;
controls.keys = [65, 83, 68]; // [rotateKey, zoomKey, panKey]