2017-01-27 3 views
1

カメラのcamera.position.z(マウスホイール付き)をどのように変更してスクロール効果を作りたいと思いますか?カメラのposition.zを3jsのマウスホイールで変更してください

私は変数を試しても機能しません。

+0

私が何を「とスクロール効果せる」手段をわからないんだけど、カメラの位置を変更したり、ページのスクロールを停止します。レンダリング側のdom要素に 'scroll'イベントリスナーを追加し、リスナー関数ではカメラの位置を変更し、' page.screventDefault() 'を呼び出してページのスクロールを防ぎます。 – 2pha

+0

私はメッシュの垂直を持っていて、ブラウザのスクロールに合わせてカメラをz軸に移動したいのですが、オーバーフローがあります: –

+0

スクロールイベントの問題は、時刻によって速度が上がります –

答えて

1

TrackballControlsまたはOrbitControlsの例を使用すると、ズーム(および回転とパン)を有効にすることができます。

<script src="three.js-master/examples/js/controls/OrbitControls.js"></script> 

そして、あなたのコードに追加

var controls = new THREE.OrbitControls(camera, renderer.domElement); 
controls.addEventListener('change', render); 

やズームボックスの外に動作するはずです:例を参照してくださいhttps://threejs.org/examples/?q=contro#misc_controls_trackball

あなたはthree.js-master/examples/js/controls/でダウンロードしたパッケージで見つけることができるコントロールの1つに含めます。

ズームのみに興味がある場合は、他の機能を無効にすることができます。

this.enableKeys = false; 
this.enablePan = false; 
this.enableRotate = false; 

も参照してくださいより多くのオプションOrbitControls

+0

私はマウスのホイールがカメラのposition.zを変更し、スクロールアップとダウンとして使用したい、そして、そのコントロールだけを望むと、パッケージに含まれている残りのすべてではない。 –

0

ためOrbitControlsソースは、今私はここにいます:

const scl=0; 

$(window).on('DOMMouseScroll mousewheel', function (e) { 


if(e.originalEvent.detail > 0 || e.originalEvent.wheelDelta < 0) { 

    while(scl==0) { 

     scl+=0.05; 
       camera.position.z+=scl; 
       //console.log("1."+" "+scl); 
    } 

} else { 

    while(scl==0) { 


     scl+=0.05; 
       camera.position.z-=scl; 
       //console.log("2."+" "+scl); 
    } 

} 
//console.log("3."+" "+scl);; 
scl=0; 
}); 

window.setInterval(function(){ 
    scl=0; 
}, 10); 
+0

あなたは自分の質問に答...これはあなたがあなたの問題を解決したことを意味しますか? – 2pha

+0

いいえ、答えはまだうまくいきませんが、コードはコメント回答セクションに収まりませんでした。申し訳ありませんが、私はjfiddleを使用しませんでした。 –

関連する問題