zoukankan      html  css  js  c++  java
  • vuex搭配screenfull实现全屏

    安装

    npm install --save screenfull

    简单使用

    <template>
      <span @click='clickFullscreen'>全屏</span>
    </template>
     
    <script>
      import screenfull from 'screenfull'
      export default{
        name: 'screenfull',
        data(){
          return {
            isFullscreen: false
          }
        },
        methods:{
          clickFullscreen(){
            if (!screenfull.isEnabled) {
              this.$message({
                message: 'you browser can not work',
                type: 'warning'
              })
              return false
            }
            screenfull.toggle()
          }
        }
      }
    </script>

    搭配vuex使用

    import screenfull from 'screenfull'
    export default {
        namespaced: true,
        state: {
            // 全屏激活
            active: false
        },
        actions: {
            /**
             * @description 初始化监听
             */
            listen({ commit }) {
                return new Promise(resolve => {
                    if (screenfull.enabled) {
                        screenfull.on('change', () => {
                            console.log('1')
                            if (!screenfull.isFullscreen) {
                                commit('set', false)
                            }
                        })
                    }
                    // end
                    resolve()
                })
            },
            /**
             * @description 切换全屏
             */
            toggle({ commit }) {
                return new Promise(resolve => {
                    if (screenfull.isFullscreen) {
                        screenfull.exit()
                        commit('set', false)
                    } else {
                        screenfull.request()
                        commit('set', true)
                    }
                    // end
                    resolve()
                })
            }
        },
        mutations: {
            /**
             * @description 设置 store 里的全屏状态
             * @param {Object} state vuex state
             * @param {Boolean} active active
             */
            set(state, active) {
                state.active = active
            }
        },
        getters: {
        }
    }
  • 相关阅读:
    LG P4284 [SHOI2014]概率充电器
    LG P2592 [ZJOI2008]生日聚会
    LG P4953 [USACO02FEB]Cow Cycling
    LG P2389 电脑班的裁员
    LG P2344 [USACO11FEB]Generic Cow Protests G
    前端简历
    前端面试题目
    大前端的技术栈
    前端 -为什么要清楚浮动?
    Redis的功能实现
  • 原文地址:https://www.cnblogs.com/theblogs/p/13099619.html
Copyright © 2011-2022 走看看