vue3 指定元素全屏 screenfull(可直接粘贴使用)

业务需求

由于输入的文字较多,需要将输入框进行全屏展示,方便输入和查看!

效果图

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

实现方式

  1. 下载插件"screenfull": “^6.0.2” yarn add screenfull -S
  2. 项目中使用 import screenfull from "screenfull"
  3. templte中代码
<div ref="textareaRef" class="screenFull">
        <el-icon class="screen_icon" @click.stop.prevent="handleScreen">
          <FullScreen />
        </el-icon>
        <el-input
          id="inputElement"
          v-model="noteData.noteText"
          :rows="rowSize"
          maxlength="5000"
          :autofocus="true"
          type="textarea"
          placeholder="有什么手记想分享给大家?"
        />
      </div>
  1. javascript代码
import { ref } from "vue";

const textareaRef = ref(null);
const rowSize = ref("3");


// 点击esc和x号退出全屏
const handleResize = () => {
  // 写法一 start 
  // document.webkitIsFullScreen  用来判断是否按了ESC和X号取消全屏 (webkitIsFullScreen有兼容性问题)
  if (!document.webkitIsFullScreen) {
    screenfull.exit();
    rowSize.value = "3";
    textareaRef.value.style.width = "100%";
    textareaRef.value.style.height = "";
  }
  // 写法一 end
  
  // 写法二 start  推荐
  if (!screenfull.isFullscreen) {
    screenfull.exit();
    rowSize.value = "3";
    if (textareaRef.value) {
      textareaRef.value.style.width = "100%";
      textareaRef.value.style.height = "";
    }
  }
  // 写法二 start
};

// 全屏
const handleScreen = () => {
  if (screenfull.isEnabled) {
    screenfull.toggle(textareaRef.value);
    rowSize.value = Math.floor(window.innerHeight / 17).toString(); // 该属性不能完成保证高度为多少行
    textareaRef.value.style.width = "100%";
    textareaRef.value.style.height = "100vh";
    textareaRef.value.style.backgroundColor = "#ffffff";
    window.onresize = handleResize;
  }
};
  1. style代码
<style lang="scss" scoped>
.screenFull {
  position: relative;
}

.screen_icon {
  position: absolute;
  top: 10px;
  right: 6px;
  z-index: 10;
  cursor: pointer;
  font-size: 15px;
}
</style>
要在Vue 3中使用fullscreen组件进行全屏显示,你可以按照以下步骤进行操作: 1. 首先,你需要导入fullscreen组件并在本地注册。你可以通过使用import语句将fullscreen组件引入到你的代码中。 2. 接下来,你需要在Vue实例中将fullscreen组件添加为一个局部组件,以便在模板中使用它。你可以在components选项中注册Fullscreen组件。 3. 然后,在data选项中添加一个名为fullscreen的响应式数据属性,并将其初始值设置为false。 4. 在模板中,你可以使用<fullscreen>标签来包裹需要全屏显示的内容。 5. 最后,你可以在方法中添加一个toggle方法来切换全屏状态。在toggle方法中,你可以通过访问this.$refs['fullscreen'].toggle()来调用fullscreen组件的toggle方法。 以下是一个示例代码,演示了如何在Vue 3中使用fullscreen组件进行全屏显示: ``` <template> <div id="app"> <fullscreen ref="fullscreen" :fullscreen.sync="fullscreen"> Content </fullscreen> <button type="button" @click="toggle">Fullscreen</button> </div> </template> <script> import Fullscreen from "vue-fullscreen/src/component.vue" export default { components: { Fullscreen }, methods: { toggle() { this.$refs['fullscreen'].toggle() } }, data() { return { fullscreen: false } } } </script> ``` 请注意,你需要确保已正确安装vue-fullscreen组件,并且已在Vue应用程序中导入和使用它。你可以使用import语句将fullscreen组件引入,并在Vue实例中使用Vue.use(fullscreen)来安装该组件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值