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

简介: 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>
相关文章
|
10月前
|
JavaScript
Fastadmin列表的多图预览(一行代码)
Fastadmin列表的多图预览(一行代码)
165 0
|
3天前
ueditor1.5 百度富文本 编辑器增加字间距功能及按钮
ueditor1.5 百度富文本 编辑器增加字间距功能及按钮
5 0
|
1月前
点击富文本部分文字跳转功能
点击富文本部分文字跳转功能
21 0
|
1月前
|
前端开发 小程序
uniapp 将标题背景更换背景图片 完美解决(附加源码+实现效果图)
uniapp 将标题背景更换背景图片 完美解决(附加源码+实现效果图)
101 0
|
7月前
如何快速修改网页上的文字?
如何快速修改网页上的文字?
369 0
|
7月前
|
JavaScript
vue项目实现预览pdf功能(解决动态文字无法显示的问题)
最近,因为公司项目需要预览pdf的功能,开始的时候找了市面上的一些pdf插件,都能用,但是,后面因为pdf变成了需要根据内容进行变化的,然后,就出现了需要动态生成的文字不显示了。换了好多好多的插件,都无法显示,直接无语了。 (pdf-vue3,pdf.js,vue3-pdfjs,vue-pdf-embed等插件无法显示动态文字)
236 0
|
7月前
|
前端开发
清明节,如何用代码让网页变灰
清明节,如何用代码让网页变灰
|
前端开发
前端禁止复制页面上的文字内容
前端禁止复制页面上的文字内容
54 0
|
前端开发 JavaScript 小程序
页面点击特效源码解析
页面点击特效源码解析
页面点击特效源码解析
在web中,用户输入的文字过多 和页面排版一行显示不下 怎么办
在web中,用户输入的文字过多 和页面排版一行显示不下 怎么办