对我的要求当我按下按钮时,我必须以全屏模式显示特定的div 并在页面恢复正常模式时隐藏该div。
我可以使用以下代码实现全屏模式: -
function launchFullscreen(element) {
if (element.requestFullscreen) {
$('#bmessages').show();
element.requestFullscreen();
} else if (element.mozRequestFullScreen) {
$('#bmessages').show();
element.mozRequestFullScreen();
} else if (element.webkitRequestFullscreen) {
$('#bmessages').show();
element.webkitRequestFullscreen();
} else if (element.msRequestFullscreen) {
$('#bmessages').show();
element.msRequestFullscreen();
} else {
console.log("Fullscreen Unavailable");
}
}
但我无法捕捉ESC或Deny事件,以便我可以再次隐藏该div?请告知我必须做什么?
答案 0 :(得分:26)
使用esc离开全屏时,Chrome无法触发关键事件。但是,会触发fullscreenchange事件。
document.addEventListener('fullscreenchange', exitHandler);
document.addEventListener('webkitfullscreenchange', exitHandler);
document.addEventListener('mozfullscreenchange', exitHandler);
document.addEventListener('MSFullscreenChange', exitHandler);
function exitHandler() {
if (!document.fullscreenElement && !document.webkitIsFullScreen && !document.mozFullScreen && !document.msFullscreenElement) {
///fire your event
}
}
答案 1 :(得分:1)
正如photicSphere所指出的,Chrome退出全屏模式时不会触发按键事件。你需要定义一个事件监听器来监听全屏模式的变化,就像这样(这个东西没有很好地标准化,所以你需要监听不同浏览器触发的事件):
if (document.addEventListener) {
document.addEventListener('webkitfullscreenchange', exitHandler, false);
document.addEventListener('mozfullscreenchange', exitHandler, false);
document.addEventListener('fullscreenchange', exitHandler, false);
document.addEventListener('MSFullscreenChange', exitHandler, false);
}
然后,当浏览器触发此事件时,它将调用' exitHandler'您定义的功能,并且您可以通过执行以下操作在用户退出全屏模式时执行操作:
function exitHandler() {
if (!document.webkitIsFullScreen && !document.mozFullScreen && !document.msFullscreenElement) {
... do something here
}
}
答案 2 :(得分:-1)
$(document).keyup(function(e) {
if (e.keyCode == 27) { <DO YOUR WORK HERE> } // esc
});