如何在IE,Firefox和Chrome中检测转义按键?下面的代码适用于IE和警报27,但在Firefox中它会发出警报0
$('body').keypress(function(e){
alert(e.which);
if(e.which == 27){
// Close my modal window
}
});
Run Code Online (Sandbox Code Playgroud) 我正在使用Three.js创建一个3D多人游戏,玩家可以加入各种现有游戏.单击"播放"后,渲染器将附加到页面和全屏幕.这很好用,但问题是,当我退出全屏时,它仍然保持附加状态.我想删除它,但我不知道什么时候!
所以,基本上,我正在寻找一个事件,说"这个元素退出全屏".
这是我将渲染器附加到页面的方式:
container = document.getElementById('container');
document.body.appendChild(container);
var renderer = new THREE.WebGLRenderer({antialias: true});
renderer.setSize( WIDTH, HEIGHT);
container.appendChild( renderer.domElement );
Run Code Online (Sandbox Code Playgroud)
如果我全屏显示它:
THREEx.FullScreen.request(container);
renderer.setSize(screen.width, screen.height);
Run Code Online (Sandbox Code Playgroud)
此外,有没有办法阻止任何人将鼠标指向页面顶部时出现恼人的标题?而且,我想我可以阻止逃脱它在Firefox和Chrome中的功能(退出全屏)preventDefault?
而且,有谁知道为什么Firefox在3D渲染中比Chrome慢得多?我的意思是,我正在使用WebGL,这意味着正在使用GPU!
编辑:
"fullscreenchange"事件确实被触发了,但它在不同的浏览器下有不同的名称.例如,在Chrome上它被称为"webkitfullscreenchange",在Firefox上它是"mozfullscreenchange".
我有一个非常奇怪的keyUp事件行为。附上JS片段。在 Chrome/Chromium 上测试。
重现步骤:
结果 - 控制台中没有输出行!这是为什么?我希望看到一些东西,但似乎退出全屏会禁用未来的 keyUp 事件。在我的情况下,我通过按一个键开始工作,并且需要在释放后停止它。目前它继续运行。
问题是 - 我如何让它工作?
这可能是 Chrome/Chromium 的错误吗?我现在已经尝试过 Firefox - keyup事件已成功触发。
i = 0;
window.addEventListener("keyup", function() {
console.log("key up, " + i);
i = i+1;
});Run Code Online (Sandbox Code Playgroud)