当前位置: 首页 > news >正文

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-inputid="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>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Python机器学习】循环神经网络(RNN)——对RNN进行预测
  • Ansible自动化部署kubernetes集群
  • PowerShell收集信息及绕过PowerShell权限
  • 使用Nignx打包前端项目
  • Java数据结构(十)——冒泡排序、快速排序
  • 22_图论中的高级数据结构
  • kubectl 命令介绍以及使用
  • 1.Linux常用指令大全
  • Android Activity分屏设置
  • 当 PLC 遇见 “IT”
  • 2024.9.11(k8s环境搭建)
  • 【电子通识】规格书上的%FS和%RD具体指什么?
  • 【Python 学习】Numpy的基础和应用
  • TriangleIcon 鸿蒙ArkTS自定义View 实现带颜色的上下箭头
  • 如何通过网络找到自己想要的LabVIEW知识?
  • 网络传输文件的问题
  • “大数据应用场景”之隔壁老王(连载四)
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • JS基础之数据类型、对象、原型、原型链、继承
  • React Native移动开发实战-3-实现页面间的数据传递
  • Vue2.x学习三:事件处理生命周期钩子
  • vuex 笔记整理
  • 包装类对象
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 仿天猫超市收藏抛物线动画工具库
  • 缓存与缓冲
  • 机器学习学习笔记一
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 无服务器化是企业 IT 架构的未来吗?
  • 详解移动APP与web APP的区别
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 移动端唤起键盘时取消position:fixed定位
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 组复制官方翻译九、Group Replication Technical Details
  • ‌前端列表展示1000条大量数据时,后端通常需要进行一定的处理。‌
  • #Linux(Source Insight安装及工程建立)
  • #宝哥教你#查看jquery绑定的事件函数
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (13)Hive调优——动态分区导致的小文件问题
  • (4)logging(日志模块)
  • (6)设计一个TimeMap
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (Git) gitignore基础使用
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (四)Controller接口控制器详解(三)
  • (算法)Game
  • (转)http协议
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)