几行代码搞定网页全屏自定义内容

简介: screenfull 是用于跨浏览器使用 JavaScript Fullscreen api 的简单包装器,可让您将页面或任何元素全屏显示 。

浏览网页全屏如何实现呢?


同学突然问你网页全屏是如何实现的?你会怎么回答呢?习惯用第三方插件的同学肯定会第一时间去找有没有使用简单的插件,今天就用几行代码帮大家实现下网页全屏。


screenfull 是用于跨浏览器使用 JavaScript Fullscreen api 的简单包装器,可让您将页面或任何元素全屏显示 。具体实现步骤请看下文!


一、安装:


npm install --save screenfull

安装完成之后在使用页面进行按需引入:


import screenfull from 'screenfull'


二、screenfull 核心属性和方法:


2.1、screenfull.enabled

检测全屏插件是否可用,返回的是一个 Boolean 值

2.2 screenfull.isFullscreen

检测当前状态是否是全屏,返回一个 Boolean 值

2.3 screenfull.toggle()

控制全屏或退出全屏,如果当前是全屏会退出全屏,否则进入全屏状态

2.4 screenfull.request()

检请求全屏某个元素,即进入全屏的时候,只显示某个元素,退出全屏后进入正常状态,使用时必须传 DOM 请求参数。

2.5 screenfull.on

添加监听全屏状态变化

screenfull.on('change', () => {        

  console.log('全屏状态变化' );  

});


检测全屏错误

screenfull.on('error', () => {        

  console.log('全屏报错' );  

});


2.6 screenfull.off

移除监听事件

screenfull.off('change', callback);

callback 是一个可选参数,不做处理时可以不传。

有上面这些方法和属性基本够我们使用了!

以全屏时只展示某个元素为例,实现Demo如下:


<template>
 <div class="event-con">
  大容器
  <div class="detail" >
   <div class="selected-event" >
    内容1
   </div>
   <div
    class="detail-module"
    :class="[isFull ? 'fullScreen-con' : 'notFull']"
     ref="fullDom"
     >
     内容2
   </div>
  </div>
 </div>
</template>
<script>
import screenfull from 'screenfull''
export default {
 data() {
  return {
   isFull: false,
  }
 },
 created() {
  if (screenfull.enabled) {
   screenfull.on('change', () => {
    console.log('全屏事件监听', screenfull.isFullscreen)
    if (screenfull.isFullscreen) {
     this.isFull = true
    } else {
     this.isFull = false
    }
   })
  }
 },
 beforeDestroy() {
  screenfull.off('change')
 },
 methods: {
  toggleScreen() {
   // 判断是否可用
   if (!screenfull.enabled) {
    // 此时全屏不可用
    this.$message.warning('此时全屏组件不可用')
     return
   }
    //   如果可用 就可以全屏
    if (screenfull.isFullscreen) {
     screenfull.toggle()
    } else {
     screenfull.request(this.$refs.fullDom)
    }
   },
 }
}
</script>
<style lang="scss" scoped>
</style>
相关文章
|
1天前
404错误页面动画模板源码
404错误页面动画模板源码
42 26
如何快速修改网页上的文字?
如何快速修改网页上的文字?
504 0
|
8月前
点击富文本部分文字跳转功能
点击富文本部分文字跳转功能
108 0
小储云系统内置防红页面美化
小储云内置防洪美化,比较火的防洪页面,特意做到小储云上面,这是本站更新的第一个小储云的页面,会更新越来越多,上传到根目录即可,然后解压-压缩包!
312 0
小储云系统内置防红页面美化
|
前端开发 UED
【网页前端】CSS进阶之元素的背景以及清除浏览器默认样式
【网页前端】CSS进阶之元素的背景以及清除浏览器默认样式
306 0
【网页前端】CSS进阶之元素的背景以及清除浏览器默认样式
|
JavaScript 前端开发
使用 JavaScript 的 HTML 页面混合、根据在下拉列表框中选择的内容,决定页面效果,用户在下拉列表框中选择页面将要使用的背景颜色
使用 JavaScript 的 HTML 页面混合、根据在下拉列表框中选择的内容,决定页面效果,用户在下拉列表框中选择页面将要使用的背景颜色
426 0
使用 JavaScript 的 HTML 页面混合、根据在下拉列表框中选择的内容,决定页面效果,用户在下拉列表框中选择页面将要使用的背景颜色
在web中,用户输入的文字过多 和页面排版一行显示不下 怎么办
在web中,用户输入的文字过多 和页面排版一行显示不下 怎么办
在不同的页面上显示不同的Joomla模板样式
模板样式是Joomla中非常强大的功能。它们允许您将同一模板的不同版本分配给特定页面。 在本教程中,我将向您展示如何分配两种模板样式。我们将为主页分配一种样式,为站点的其余部分分配另一种样式。 第1步.复制模板样式安装模板时,默认情况下会生成单个模板样式。
|
前端开发 JavaScript Web App开发
如何用纯 CSS 创作一个打开内容弹窗的交互动画
效果预览 在线演示 按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。 可交互视频 此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。
1406 0