element + vue 关于全屏screenfull用法以及遇到的问题

一.安装screenfull

1.npm install screenfull 直接安装的是最高版本的 下载的时候没报错,引用screenfull的时候就报这个错了 说是webpack.confing 文件不支持最新版本的语法问题

在这里插入图片描述

2.卸掉后换成5.1.0 npm install --save-dev screenfull@5.1.0 换成5.1.0 就可以了

二.封装screenfull组件

这里我因为项目需要 部分页面全屏 如果不需要直接 screenfull.toggle();

<template>
  <div style="display: inline-block">
    <el-tooltip
      v-if="isFullscreen"
      content="缩放"
      placement="bottom"
      effect="dark"
    >
      <i
        class="fa fa-compress"
        style="vertical-align: middle; cursor: pointer"
        @click="click"
      ></i>
    </el-tooltip>
    <el-tooltip
      v-if="!isFullscreen"
      content="全屏"
      placement="bottom"
      effect="dark"
    >
      <i
        class="fa fa-expand"
        style="vertical-align: middle; cursor: pointer"
        @click="click"
      ></i>
    </el-tooltip>
  </div>
</template>

<script>
import screenfull from "screenfull";//安装最新版本 就是在这里报的错 降低版本就好了
export default {
  name: "Screenfull",
  data() {
    return {
      isFullscreen: false,
    };
  },
  mounted() {
    this.init();
  },
  beforeDestroy() {
    this.destroy();
  },
  methods: {
    click() {
      const element = document.getElementById("main-container"); //指定全屏区域元素
      if (!screenfull.isEnabled) {
        this.$message({
          message: "浏览器不支持",

          type: "warning",
        });

        return false;
      } else {
        screenfull.request(element);
      }
      screenfull.toggle();
    },
    change() {
      this.isFullscreen = screenfull.isFullscreen;
    },
    init() {
      screenfull.on("change", this.change);
    },
    destroy() {
      if (screenfull.enabled) {
        screenfull.off("change", this.change);
      }
    },
  },
};
</script>

<style scoped>
.screenfull-svg {
  display: inline-block;
  cursor: pointer;
  fill: #5a5e66;
  width: 20px;
  height: 20px;
  vertical-align: 10px;
}
</style>

三.引用screenfull组件

    <FullScreenVue
        slot="fullscreen"
        id="FullScreenVue"
        class="dropdown_right"
        style="margin-right: -20px"
      ></FullScreenVue>
      <script>
      import FullScreenVue from "@/components/FullScreen";
      export default {
       components: {
         FullScreenVue,
        },
         data() {
         return {
          fullscreen: false,
         }
         }
      }
      </script>

四.效果

在这里插入图片描述
在这里插入图片描述

  • 24
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jiojio冲冲冲

能帮助你是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值