vue 全屏按钮组件

<template>
  <!-- 放置一个图标 -->
  <div class="screenWrapper">
    <!--
      'exit-fullscreen'  'fullscreen'
     -->
    <!--
       问题:点击浏览器的叉号 或者esc 此时视图显示是退出了 但是图标并没有发生变化
       原因:控制icon显示的数据状态isFullScreen 并不会随着esc或者叉号的点击发生变化
       解决:根据esc或者叉号的点击 把这个状态同步到isFullScreen
       关键:如何得知esc或者叉号被点击了???
      -->
      

    <!-- 全屏图标 -->
    <svg-icon :icon-class="isFullScreen ? 'exit-fullscreen': 'fullscreen'" class="fullscreen" @click="toggleScreen" />

  </div>
</template>

<script>
export default {
  name: 'ScreenFull',
  data() {
    return {
      isFullScreen: false // false 未开启  true已开启
    }
  },
  mounted() {
    document.addEventListener('fullscreenchange', (e) => {
      // 判断退出全屏的条件
      const isFull = document.fullscreenElement
      // isFull在退出全屏的时候 是null
      if (isFull == null) {
        // console.log('退出全屏了')
        this.isFullScreen = false
      }
    })
  },
  methods: {
    toggleScreen() {
      // 切换全屏
      // 如果当前未开启 点击就开启  如果已开启 点击关闭全屏
      if (this.isFullScreen) {
        // 关闭
        document.exitFullscreen()
      } else {
        // 打开
        document.documentElement.requestFullscreen()
      }
      this.isFullScreen = !this.isFullScreen
    }
  }
}
</script>

<style lang="scss" scoped>
.screenWrapper{
  display: flex;
  align-items: center;
  margin-right: 20px;
}
.fullscreen {
  width: 20px;
  height: 20px;
  color: #fff;
  cursor: pointer;
}
</style>


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值