JavaScript全屏和退出全屏事件总结(附代码)
代码如下:
window.isflsgrn=false;//ie11以下是否进入全屏标志,true为全屏状态,false为非全屏状态
window.ieIsfSceen=false;//ie11是否进入全屏标志,true为全屏状态,false为非全屏状态
//跨浏览器返回当前document是否进入了可以请求全屏模式的状态
functionfullscreenEnable(){
varisFullscreen=document.fullscreenEnabled||
window.fullScreen||
document.mozFullscreenEnabled||
document.webkitIsFullScreen;
returnisFullscreen;
}
//全屏
varfScreen=function(){
vardocElm=document.documentElement;
if(docElm.requestFullscreen){
docElm.requestFullscreen();
}
elseif(docElm.msRequestFullscreen){
docElm.msRequestFullscreen();
ieIsfSceen=true;
}
elseif(docElm.mozRequestFullScreen){
docElm.mozRequestFullScreen();
}
elseif(docElm.webkitRequestFullScreen){
docElm.webkitRequestFullScreen();
}else{//对不支持全屏API浏览器的处理,隐藏不需要显示的元素
window.parent.hideTopBottom();
isflsgrn=true;
$("#fsbutton").text("退出全屏");
}
}
//退出全屏
varcfScreen=function(){
if(document.exitFullscreen){
document.exitFullscreen();
}
elseif(document.msExitFullscreen){
document.msExitFullscreen();
}
elseif(document.mozCancelFullScreen){
document.mozCancelFullScreen();
}
elseif(document.webkitCancelFullScreen){
document.webkitCancelFullScreen();
}else{
window.parent.showTopBottom();
isflsgrn=false;
$("#fsbutton").text("全屏");
}
}
//全屏按钮点击事件
$("#fsbutton").click(function(){
varisfScreen=fullscreenEnable();
if(!isfScreen&&isflsgrn==false){
if(ieIsfSceen==true){
document.msExitFullscreen();
ieIsfSceen=false;
return;
}
fScreen();
}else{
cfScreen();
}
})
//键盘操作
$(document).keydown(function(event){
if(event.keyCode==27&&ieIsfSceen==true){
ieIsfSceen=false;
}
});
//监听状态变化
if(window.addEventListener){
document.addEventListener('fullscreenchange',function(){
if($("#fsbutton").text()=="全屏"){
$("#fsbutton").text("退出全屏");
}else{
$("#fsbutton").text("全屏");
}
});
document.addEventListener('webkitfullscreenchange',function(){
if($("#fsbutton").text()=="全屏"){
$("#fsbutton").text("退出全屏");
}else{
$("#fsbutton").text("全屏");
}
});
document.addEventListener('mozfullscreenchange',function(){
if($("#fsbutton").text()=="全屏"){
$("#fsbutton").text("退出全屏");
}else{
$("#fsbutton").text("全屏");
}
});
document.addEventListener('MSFullscreenChange',function(){
if($("#fsbutton").text()=="全屏"){
$("#fsbutton").text("退出全屏");
}else{
$("#fsbutton").text("全屏");
}
});
}
值得注意的是fullscreenEnabled参数,网上的说法不一,有的说是监控浏览器是否进入了可以请求全屏模式的状态,有的说只是一个判断浏览器是否支持全屏的标志,实际使用时也确实出现了问题,IE11不能识别这个属性,需要自己单独设置一个标记来控制IE11当前是否为全屏状态。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助~如果有疑问大家可以留言交流,谢谢大家对毛票票的支持!