2013-08-01 4 views
1

사용자가 "스페이스"및 "Enter"키를 동시에 누르면 내 웹 페이지에 전체 화면 옵션을 제공하려고합니다. 다음 코드가 있습니다. 다음 코드가 있습니다. 하지만 작동하지 않습니다. 내가 어디로 잘못 가고 있니? 하나의 키를 주면 작동합니다.전체 화면 옵션

<!doctype html> 
<html> 
<head> 
    <title>Full Screen Example</title> 
    <style type="text/css"> 
     :-webkit-full-screen #myimage { 
     width: 100%; 
     height: 100%; 
    } 
    </style> 
</head> 
<body> 
    <p>Press "space" and "enter" to enter full screen</p> 
    <p><strong>To use full-screen mode, you need Firefox 9 or later or Chrome 15 or   later.</strong></p> 
    <img src = "./3.jpg" width="640" height="360" id="myimage"> 
</body> 
<script> 
var imageElement = document.getElementById("myimage"); 

function toggleFullScreen() { 
    if (!document.mozFullScreen && !document.webkitFullScreen) { 
     if (imageElement.mozRequestFullScreen) { 
      imageElement.mozRequestFullScreen(); 
     } else { 
      imageElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT); 
     } 
    } else { 
     if (document.mozCancelFullScreen) { 
      document.mozCancelFullScreen(); 
     } else { 
      document.webkitCancelFullScreen(); 
     } 
    } 
} 

document.addEventListener("keydown", function(e) { 
    if ((e.keyCode == 13) && (e.keyCode == 32)) { 
     toggleFullScreen(); 
    } 
}, false); 
</script> 

답변

1

현재 addEventListener() 호출을 제거하고 아래에서 제공 한 내용으로 스크립트를 보강하십시오. 이것은 IE8에서 작동하지 않을 것이라는 점에 유의하십시오 (그러나 여러분이 모질 (moz)과 웹킷 (webkit) 함수를 사용하고 있다고 생각한다면 어쨌든 그것을 목표로하지는 않을 것이라고 생각합니다).

var keys = []; 

function keyIsDown(keyCode) { 
    return (keys.indexOf(keyCode) > -1); 
} 

document.addEventListener("keydown", function(e) { 
    // Remember the key being pressed 
    keys.push(e.keyCode); 

    // Check if ENTER and SPACE are both being pressed 
    if (keyIsDown(13) && keyIsDown(32)) { 
    toggleFullScreen(); 
    } 
}, false); 

document.addEventListener("keyup", function(e) { 
    // Remember that this key is no longer being pressed 
    var keyIndex = keys.indexOf(e.keyCode); 
    if (keyIndex > -1) keys.splice(keyIndex, 1); 
}, false); 

기본 아이디어는 parjun에 대한 크레딧입니다. 방금 jQuery없이이 작업을했습니다.

0

키를 누를 때 키 배열을 유지해야합니다.

var keyArray = []; 
function containsAll(firstArray, secondArray){ 
    for(var i = 0 , len = firstArray.length; i < len; i++){ 
    if($.inArray(firstArray[i], secondArray) == -1) return false; 
    } 
    return true; 
} 
document.addEventListener("keydown", function(e) { 
     if ((e.keyCode == 13) || (e.keyCode == 32)) { 
     keyArray.push(e.keyCode); 
     } 
    if(containsAll(['13','32'],keyArray)){ 
toggleFullScreen(); 
} 

    }, false); 
$(document).keyup(function (e) { 
    keyArray.remove(e.keyCode); 
}); 
+0

didnt work ............................ – Benny