Reputation: 365
I am having problems trying to add fullscreen functionality to an element in my app.
I basically do something like this:
var launchFullScreen = function (element) {
if(element.requestFullScreen) {
element.requestFullScreen();
}
else if(element.mozRequestFullScreen) {
element.mozRequestFullScreen();
}
else if(element.webkitRequestFullScreen) {
element.webkitRequestFullScreen();
}
};
var cancelFullscreen = function() {
if(document.cancelFullScreen) {
document.cancelFullScreen();
}
else if(document.mozCancelFullScreen) {
document.mozCancelFullScreen();
}
else if(document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
};
$("#view").on("keypress", function(event){
if(event.which == 27){
cancelFullscreen();
}
});
$("#view").on("click", function(event){
console.log("view clicked");
launchFullScreen($("#view"));
});
I don't see what I am doing wrong. Any suggestions?
Upvotes: 1
Views: 225
Reputation: 41
Here's a solution:
var
view = document.querySelector("#view"),
launchFullscreen = function(element){
var domPrefixes = 'webkit moz o ms khtml'.split(' '), i = 0, prefix = null;
while(!(prefix = previewFrame[domPrefixes[i] + 'RequestFullScreen'])){ i++; }
prefix.apply(element);
},
cancelFullscreen = function(){
var domPrefixes = 'webkit moz o ms khtml'.split(' '), i = 0, prefix = null;
while(!(prefix = previewFrame[domPrefixes[i] + 'CancelFullScreen'])){ i++; }
prefix.apply(document);
};
view.addEventListener('click', function(){
launchFullscreen(this);
});
view.addEventListener("keypress", function(event){
if(event.which == 27){ cancelFullscreen(); }
});
Upvotes: 0
Reputation: 774
I believe you're calling fullscreen on the jQuery wrapped element, not the element itself. Try this instead:
launchFullScreen($("#slideView").get(0));
Upvotes: 1