vue 全屏事件

<div
            style="color: #fff"
            @click="allWhole"
            v-if="isOpenAll"
            class="all-content"
          >
            <i class="el-icon-close"></i>
            <div class="all-title">关闭全屏</div>
          </div>
          <div style="color: #fff" @click="allWhole" v-else class="all-content">
            <i class="el-icon-rank"></i>
            <div class="all-title">全屏</div>
          </div>


mounted() {
    this.$forceUpdate()
    this.$nextTick(function () {
      window.addEventListener('keydown', function (event) {
        // 禁掉F11的全屏的默认事件,不会禁止F11的退出全屏
        const e = event || window.event
        if (e && e.keyCode === 122) {
          e.preventDefault()
        }
      })
      document.addEventListener('fullscreenchange', () => {
        this.isOpenAll = !this.isOpenAll
        // 这些监听,可以监听到esc按键按下导致的全屏变化,但是监听不到F11的打开全屏的变化,会自动调用fullScreenEvent方法
      })
      document.addEventListener('mozfullscreenchange', () => {
        this.isOpenAll = !this.isOpenAll
      })
      document.addEventListener('webkitfullscreenchange', () => {
        this.isOpenAll = !this.isOpenAll
      })
      document.addEventListener('msfullscreenchange', () => {
        this.isOpenAll = !this.isOpenAll
      })
    })
  },

  fullScreenEvent() {
      if (!this.isOpenAll) {
        const box = document.getElementById(this.contentList)
        if (box.RequestFullScreen) {
          box.RequestFullScreen()
        } else if (box.requestFullscreen) {
          box.requestFullscreen()
        } else if (box.mozRequestFullScreen) {
          box.mozRequestFullScreen()
        } else if (box.msRequestFullscreen) {
          box.msRequestFullscreen()
        } else if (box.oRequestFullscreen) {
          box.oRequestFullscreen()
        } else if (box.webkitRequestFullscreen) {
          box.webkitRequestFullScreen()
        }
      } else {
        const el = document
        if (el.exitFullscreen) {
          el.exitFullscreen()
        } else if (el.mozCancelFullScreen) {
          /* Firefox */
          el.mozCancelFullScreen()
        } else if (el.webkitExitFullscreen) {
          /* Chrome, Safari and Opera */
          el.webkitExitFullscreen()
        } else if (el.msExitFullscreen) {
          /* IE/Edge */
          el.msExitFullscreen()
        }
      }
    },
    allWhole() {
      this.fullScreenEvent()
    }

版权声明:本文为YM20210722原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>