JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍

 浏览器全屏模式的启动函数requestFullscreen仍然需要附带各浏览器的js方言前缀,相信下面这段代码需要你花大量的搜索才能凑齐:

 
 代码如下:
// 判断各种浏览器,找到正确的方法
function launchFullscreen(element) {
  if(element.requestFullscreen) {
    element.requestFullscreen();
  } else if(element.mozRequestFullScreen) {
    element.mozRequestFullScreen();
  } else if(element.webkitRequestFullscreen) {
    element.webkitRequestFullscreen();
  } else if(element.msRequestFullscreen) {
    element.msRequestFullscreen();
  }
}
 
// 启动全屏!
launchFullScreen(document.documentElement); // 整个网页
launchFullScreen(document.getElementById("videoElement")); // 某个页面元素
 
 
对你想要全屏显示的页面元素调用全屏方法,浏览器窗口就会变成全屏,但会先请求用户允许全屏模式。要注意,用户很有可能会拒绝全屏模式。如果用户运行全屏模式,则浏览器的工具条等按钮菜单都会隐藏,你的页面会覆盖整个屏幕。
 
退出全屏模式
 
这个exitFullscreen方法(也需要加浏览器前缀)会让浏览器退出全屏模式,变成正常模式。
 
 代码如下:
// 判断浏览器种类
function exitFullscreen() {
  if(document.exitFullscreen) {
    document.exitFullscreen();
  } else if(document.mozCancelFullScreen) {
    document.mozCancelFullScreen();
  } else if(document.webkitExitFullscreen) {
    document.webkitExitFullscreen();
  }
}
 
// 退出全屏模式!
exitFullscreen();
 
 
需要注意的是,exitFullscreen只能由document对象调用,而不是启动全屏时传入的对象。
 
全屏属性和事件
 
不幸的是,全屏属性和事件的相关方法也需要添加浏览器前缀,但我相信很快就不需要这样做了。
 
1.document.fullScreenElement: 全屏显示的网页元素。
2.document.fullScreenEnabled: 判断当前是否处于全屏状态。
 
fullscreenchange事件会在启动全屏或退出全屏时触发:
 
 代码如下:
var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement;
var fullscreenEnabled = document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled;
 
 
 
你仍然可以使用上面判断浏览器种类的方法给这个事件加上前缀。
 
全屏样式CSS
 
各种浏览器都提供了一个非常有用的全屏模式时的css样式规则:
 
 代码如下::-webkit-full-screen {
  /* properties */
}
 
:-moz-full-screen {
  /* properties */
}
 
:-ms-fullscreen {
  /* properties */
}
 
:full-screen { /*pre-spec */
  /* properties */
}
 
:fullscreen { /* spec */
  /* properties */
}
 
/* deeper elements */
:-webkit-full-screen video {
  width: 100%;
  height: 100%;
}
 
/* styling the backdrop*/
::backdrop {
  /* properties */
}
::-ms-backdrop {
  /* properties */
}
 
 
有些情况下,WebKit样式会出现一些问题,你最好把这些样式保持简洁。
 
 
这些全屏API都超级的简单,而且超级的有用。我第一次是在MDN's BananaBread demo中看到这个API的,那是一个枪击游戏,正好需要全屏化,它使用了事件监听来检测全屏状态。记住这些好用的API,需要的时候可以顺手拈来。
 

时间: 2024-09-22 23:12:25

JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍的相关文章

JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件_javascript技巧

HTML 5中的full screen,目前可以在除IE和opera外的浏览器中使用 ,有的时候用来做全屏API,游戏呀,等都很有用.先看常见的API  element.requestFullScreen()  作用:请求某个元素element全屏 Document.getElementById("myCanvas").requestFullScreen()   这里是将其中的元素ID去请求fullscreen 退出全屏   document.cancelFullScreen() Do

JavaScript 控制字体大小设置的方法_javascript技巧

在做公司的官网的时候,新闻内页会有一个让浏览者自己调整文字大小的功能,因此在这个空闲时间,把这个功能整理下来: function setFontSize (id,content,params){ var oTarget = document.getElementById(id), content = document.getElementById(content), size = params.size || 14, maxSize = params.maxSize || 20, step =

用 JavaScript 控制 Flash 播放器的方法汇总

javascript|控制 说明:含例句的方法我已作了测试. 播放动画:Play() 例:(网页中的 Flash id).Play(); 停止动画:StopPlay() 动画是否正在播放:IsPlaying() 跳转到某帧:GotoFrame(frame_number) 获取动画总帧数:TotalFrames() 回传当前动画所在帧数:CurrentFrame() 使动画返回第一帧:Rewind() 放大指定区域:SetZoomRect(left,top,right,buttom) 改变动画大小

跨浏览器 HTML5 postMessage 方法以及 message 事件模拟实现

postMessage 方法 JSONP 技术不一样,前者是前端擅长跨域文档数据即时通讯,后者擅长针对跨域服务端数据通讯,postMessage 应用场景能说明这个区别: 应用场景举例 1.webOS 使用 iframe 嵌入第三方应用,此时 webOS 与应用需要实时接收/发送各自的消息与响应事件. 2.页面弹出一个由 iframe 层,嵌入第三方提供的图片上传页面,文件上传完毕后需要获取返回图片地址插入到编辑器. 3.iframe 跨域高度自适应. HTML5 postMessage 方法

js实现鼠标滚轮控制图片缩放效果的方法

 这篇文章主要介绍了js实现鼠标滚轮控制图片缩放效果的方法,涉及onmousewheel事件及javascript操作图片的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了js实现鼠标滚轮控制图片缩放效果的方法.分享给大家供大家参考.具体实现方法如下:   代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml

浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题_javascript技巧

如果你想使一个元素在全屏模式下展现 (比如说 <video>),你可以调用该元素的 requestFullscreen() 方法:这个方法在 Gecko 中的实现是 element.mozRequestFullScreen(),在 WebKit 中为 element.webkitRequestFullscreen(). 比如一个实例: var elem = document.getElementById("myvideo"); if (elem.requestFullscr

JavaScript控制两个列表框listbox左右交换数据的方法

 这篇文章主要介绍了JavaScript控制两个列表框listbox左右交换数据的方法,实例分析了javascript操作列表框listbox的技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了JavaScript控制两个列表框listbox左右交换数据的方法.分享给大家供大家参考.具体分析如下: 这个功能我们经常用到,将左边列表框的元素移动到右边,或者将右边列表框的元素移动到左边,可以一次性全部移动 代码如下: function listbox_moveacross(sour

JavaScript控制listbox列表框的项目上下移动的方法

 这篇文章主要介绍了JavaScript控制listbox列表框的项目上下移动的方法,实例分析了javascript操作listbox列表框的技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了JavaScript控制listbox列表框的项目上下移动的方法.分享给大家供大家参考.具体分析如下: 这段JS代码可以控制listbox内的元素向上或者向下移动,这个功能非常有用.下面是详细的代码 代码如下: function listbox_move(listID, direction

JavaScript原生对象之Date对象的属性和方法详解

 这篇文章主要介绍了JavaScript原生对象之Date对象的属性和方法详解,需要的朋友可以参考下     创建 Date 对象的语法: 代码如下: //Date 对象会自动把当前日期和时间保存为其初始值. new Date();   //value-毫秒:代表自世界协调时1970年1月1日00:00:00开始的数值. new Date(value); //dateString-日期字符串:表示日期的字符串值.此字符串应该是在parse方法中识别的格式. new Date(dateString