Prechádzať zdrojové kódy

Merge pull request #15620 from greggman/orbitcontrols-focus-iframe-issue

Fix for OrbitControls not allowing keyboard input in iframe
Mr.doob 6 rokov pred
rodič
commit
bc0c566f0e
1 zmenil súbory, kde vykonal 11 pridanie a 0 odobranie
  1. 11 0
      examples/js/controls/OrbitControls.js

+ 11 - 0
examples/js/controls/OrbitControls.js

@@ -539,6 +539,10 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 		//console.log( 'handleKeyDown' );
 
+		// prevent the browser from scrolling on cursor up/down
+
+		event.preventDefault();
+
 		switch ( event.keyCode ) {
 
 			case scope.keys.UP:
@@ -673,8 +677,15 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 		if ( scope.enabled === false ) return;
 
+		// Prevent the browser from scrolling.
+
 		event.preventDefault();
 
+		// Manually set the focus since calling preventDefault above
+		// prevents the browser from setting it automatically.
+
+		scope.domElement.focus ? scope.domElement.focus() : window.focus();
+
 		switch ( event.button ) {
 
 			case scope.mouseButtons.LEFT: