mousewheelevent を、「カメラを移動させるための関数」とするのではなく、「カメラの移動状態を開始する」関数ととらえれば、できそうですね。
javascript
1
2window.camMoving = false;
3window.camMoviingTime = 0;
4
5window.CamFirst = new THREE.Vector3(0,0,0);  //開始位置
6window.CamEnd = new THREE.Vector3(0,0,100);  //終了位置
7
8
9function mousewheeleventSample(){
10 // カメラが移動状態でなければ、カメラ移動状態にする
11 if(!window.camMoving){
12     window.camMoving = true;
13     window.camMoviingTime = 0;
14 }
15}
16
17
18renderer() {
19   if(window.camMoving){
20
21      //すごく単純に、50フレーム(1秒弱)でカメラが移動しきる感じにしてあります。      
22    if(window.camMoviingTime < 50){
23          window.camMoviingTime++;  //経過フレーム数
24
25          //中間地点の入れ物を作ります。
26          const movingCam = window.CamFirst.lerp(window.CamEnd , window.camMoviingTime * 0.02 )
27
28          camera.position.copy(movingCam);
29      
30      }
31   }
32
33   renderer.render();
34}
35
36
Vector3.lerp( 目標地点, 目標地点までの係数)  で、開始位置と終了位置の中間の位置を求めることができます。係数は 0で初期位置、1.0で目標位置 となります。  window.camMoviingTimeに0.02をかけているのは、50のときに1.0になるようにするため、です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。