vue 使用 screenfull.js 页面全屏功能

 安装 screenfull

npm install --save screenfull

 在需要的页面引入

import screenfull from "screenfull";

主要实现方式 screenfull.toggle();

 screenfull.request() :  点击事件只执行一次,全屏下点击事件不可用

 screenfull.toggle() :  可以控制全屏与退出全屏两个显示

一、单页面全屏

created 跳转到给页面全屏显示;也可以弄一个按钮去触发全屏

created() {
    // 需要注意的是 如果判断!screenfull.enabled 显示的是不支持全屏的话 是因为谷歌的版本问题  判断改为 !screenfull.isEnabled  就可以了
      if (!screenfull.isEnabled) {
        // 如果不允许进入全屏,发出不允许提示
        this.$message({
          message: "不支持全屏",
          type: "warning"
        });
        return false;
      }
      screenfull.toggle();
}

 二、多页面全屏(应用到全部页面)

 通过使用全屏按钮,达到切换效果

可以在store中控制样式

html

// 需要的图标需要自己下载 iconfont

<el-tooltip
    class="item"
    effect="dark"
    content="全屏操作"
    placement="bottom"
    >
    <div @click="btnclick">
        <i
         v-if="!this.isFullScreen"
         class="iconfont icon-fangda"
         style="font-size:18px;"
        ></i>
        <i
         v-if="this.isFullScreen"
         class="iconfont icon-suoxiao"
         style="font-size:18px"
        ></i>
    </div>
</el-tooltip>

js

<script>
import screenfull from "screenfull";
export default {
    data() {
        return {}
    },
    computed:{
        isFullScreen(){
          return this.$store.state.isFullScreen
        }
    },
    methods:{
        btnclick(){
            // 需要注意的是 如果判断!screenfull.enabled 显示的是不支持全屏的话 是因为谷歌的版本问题  判断改为 !screenfull.isEnabled  就可以了
            if (!screenfull.isEnabled) {
                // 如果不允许进入全屏,发出不允许提示
                this.$message({
                message: "不支持全屏",
                type: "warning"
                });
                return false;
            }
            screenfull.toggle();

            screenfull.on("change", () => {
                this.$store.dispatch("toggleFullScreen", screenfull.isFullscreen);
            });

        }
    }
  
}
</script>

store

import Vue from 'vue'
import Vuex from 'vuex'


Vue.use(Vuex)
const store = new Vuex.Store({
  state: {
    isFullScreen: false
  },
  mutations: {
 
    toggleFullScreen(state, isFullScreen) {
      state.isFullScreen = isFullScreen;
    }
  },
  actions: {
 
    toggleFullScreen(context, isFullScreen) {
      context.commit('toggleFullScreen', isFullScreen)
    },
  },
  modules: {
  }
})


export default store

Vue 3.0 中使用 screenfull 库进行全屏显示,可以按照以下步骤进行: 1. 安装 screenfull 库 ```shell npm install screenfull --save ``` 2. 在组件中引入 screenfull 库 ```javascript import screenfull from "screenfull"; ``` 3. 在组件中添加全屏切换方法 ```javascript toggleFullScreen() { if (screenfull.isEnabled) { screenfull.toggle(this.$refs.fullscreenRef); } } ``` 在上述代码中,我们检查了当前浏览器是否支持全屏 API,如果支持则调用 `screenfull.toggle()` 方法来切换全屏状态,其中 `this.$refs.fullscreenRef` 是需要全屏显示的元素的引用。 4. 在模板中添加全屏切换按钮 ```html <template> <div> <button @click="toggleFullScreen">全屏</button> <div ref="fullscreenRef">需要全屏显示的内容</div> </div> </template> ``` 在模板中,我们添加了一个全屏切换按钮和一个需要全屏显示的内容的引用。 完整的组件代码如下: ```html <template> <div> <button @click="toggleFullScreen">全屏</button> <div ref="fullscreenRef">需要全屏显示的内容</div> </div> </template> <script> import screenfull from "screenfull"; export default { methods: { toggleFullScreen() { if (screenfull.isEnabled) { screenfull.toggle(this.$refs.fullscreenRef); } } } }; </script> ``` 需要注意的是,虽然 screenfull 库可以帮助我们简化全屏显示的实现,但在使用该库时仍需要进行浏览器兼容性测试,保证在不同浏览器和设备上都能正常工作。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值