如何通过插件screenFull实现全屏效果?

浏览器中自带全屏功能document.documentElement.webkitRequestFullScreen(),不过有兼容性问题,所以需要用插件screenFull

具体使用步骤如下:

1.安装插件

npm i screenfull@5.1.0

2.引入

import screenfull from 'screenfull'

3.给对应的图标添加点击事件(图标自己准备)

<svg-icon
   icon-class="fullscreen"
   @click="handleScreen"
/>

4.触发screenfull插件的自带方法toggle()即可切换全屏

handleScreen () {
   screenfull.toggle()

5.如何还想在切换全屏时,对应的图标跟着切换,可以设置一个变量来控制图标的切换

(1)设置变量isFullscreen

data () {
  return {
    isFull: false
  }
}

(2) 事件触发时isFullscreen 取反

handleScreen () {
  screenfull.toggle()
  this.isFull= !this.isFull
}

(3)准备好切换全屏的两个图标,通过判断isFull的值实现图标切换

<svg-icon
      :icon-class="isFull? 'exit-fullscreen' : 'fullscreen'"
      @click="handleScreen "
    />

如何解决键盘按键ESC退出全屏后,图标不切换的问题? 

通过screenfull插件自带的事件监听on和自带属性isFullscreen来实现

created() {
    // screenfull.isFullscreen :插件自带的属性,表示当前是否处于全屏状态


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


      console.log('当前是否是全屏', screenfull.isFullscreen)

   // 将当前是否全屏的状态赋值给自己定义的变量isFull,即可完成图标的同步切换
      this.isFull= screenfull.isFullscreen
    })
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值