vue使用screenfull实现全屏

一、安装

安装5.1.0否则会有个报错

npm install --save screenfull@5.1.0

二、在项目中导入使用

import screenFull from 'screenfull';

然后我们需要初始化注册这个事件 在created中调用初始化函数, 在data中定义要控制的变量, 我们就是根据这个字段来控制icon图标的展示状态,并且需要在组件销毁的时候注销, screenfull的change事件

data() {
    return {
        screenState: false // 屏幕的状态
    }
},
created() {    
    this.init();
},
methoeds: {
    init() {    
        if (screenFull.isEnabled) { // 判断是否支持全屏        
            screenFull.on('change', this.change); // 开启监听change事件    
        }
    },
    // 更改当前屏幕的状态  
    change() {      
        this.screenState = screenFull.isFullscreen; // 更新全屏状态   
    },
},
// 最后注销监听事件
beforeDestroy() {  
    if (screenFull.isEnabled) {    
        screenFull.off('change', this.change);  
    }
}

我们只需要给 全屏icon 和 退出全屏icon 绑定点击事件并且通过 v-if / v-else 来控制展示与隐藏即可 这样icon图标就可以跟随屏幕的状态自动更换对应的图标了

<!-- 全屏 -->
<div
  v-if='screenState'
  class="iconfont icon-24gl-fullScreenEnter iconClass"   
  @click="handlerScreenFull"
/>
<!-- 退出全屏 -->
<div 
  v-else
  class="iconfont icon-24gl-fullScreenEnter iconClass"
  @click="handlerScreenFull"
/>

绑定点击icon的事件来进行触发状态的切换

handlerScreenFull() {  
    if (screenFull.isEnabled) { // 加个判断浏览器是否支持全屏    
        screenFull.toggle(); // 切换全屏状态  
    } else {
        this.$message.info('您的浏览器不支持全屏');  
    }
},

这样我们就可以完美控制, 全屏和退出全屏icon的图标展示了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值