Unfortunately there are many ways to do what your asking and from the info you have here it's very hard to tell what's going on. We're missing a lot of information.
It appears to me that zoomCamera(); in onObjectsClick(event) is not an "Updated" but a single frame function.
It appears to me that you are using lerp in a way that it's not really designed for....
If you look at the browser error console (F12) you will notice a lot of errors:
WebGL: INVALID_OPERATION: uniformMatrix4fv: location is not from current program
WebGL: INVALID_OPERATION: bindBuffer: object does not belong to this context
It appears that one WebGL application tries to access stuff which belongs to a different WebGL application. How ...
If you use things that are Framerate Dependent (Update or things with deltatime) then it can cause this.
If you do not want the routine to be framerate dependent then you can use WaitForFixedUpdate() or put the movement in FixedUpdate() These have a fixed timestep loop
This is due to your Canvas scaling properties. By default the Canvas that you use doesn't scale with the resolution. So if you work in Unity with a small resolution (your game window size defines the resolution you're using, in your case it's a 4:3 ratio resolution but it seems very small), let's say 640x480 and try to play the game after building it on a ...
Try these things:
(a) Uncheck the "Strip Engine Code" from project settings -> other settings
(b) Try to build your project outside the current Unity project
More info: https://docs.unity3d.com/Manual/webgl-building.html