페이지에 iFrame
이 있습니다. 방문자의 경우 브라우저의 초점이 iFrame
인지 여부를 아는 것이 중요합니다.초점이 짧게 손실되었을 때 요소가 표시되지 않도록 차단합니다.
이렇게하려면 페이지가로드 될 때 iFrame
에 포커스가 주어집니다. 초점을 잃어 버리면 iFrame
상단에 div overlay
이 표시되어 초점을 잃었다 고 알립니다. overlay
을 클릭하면, 숨겨진이고 초점은 iframe
다시 주어진다 :
// When overlay is clicked, focus on game
$('#NoFocusOverlay').click(function() {
focusOnGame();
});
// When game loses focus, show overlay
$('#GameIFrame').blur(function() {
$('#NoFocusOverlay').fadeIn('fast');
});
function focusOnGame() {
$('#GameIFrame').focus();
$('#NoFocusOverlay').hide();
}
이제, 일부 페이지의 컨트롤 (볼륨 조절, 변경은 iframe 등의 크기)하는 것이가하는 문제에 필요성을 클릭하면 다시 iFrame
에 포커스를 : 볼륨 조절 초점 손실을 클릭하면
// Change volume of game via control on page
function changeVol(newVol){
... do vol change...
focusOnGame();
}
문제는, 초점을 다시 설정되기 전에 잠시 오버레이를 표시하고 오버레이가 숨겨져 있습니다. 오버레이가 계속 깜박 거리는 것을 좋아 보이지 않습니다. 쉽게 이런 일을 막을 방법이 있습니까?
좋은 아이디어는 불행히도 작동하지 않지만 계속 깜박입니다. –
컨트롤에 포커스가 있는지 결정할 때 무엇을 사용하고 있습니까? 또한 게임 자체의 컨트롤 부분을 고려하는 방법이있을 수 있으므로 기술적으로 포커스를 잃지 않습니다. 즉, 컨트롤과 게임 창 사이에 페이지 공간이없는 경우입니다. – user3166545