Vue中ElementUI结合transform使用时,修复el-select弹框定位不准确问题

        在大屏开发中,比如将1920*1080放到更大像素(3500*2400)大屏上演示,此时需要使用到transform来对页面进行缩放,但是此时发现弹框定位出错问题,无法准备定位到实际位置。之前写过一篇讲解的是ElementUI中的<el-date-picker />组件修复定位问题,经过网友不断发现和提问,原来不同组件解决方案是不同的,这讲解下 <el-select />组件如何修复。

        <el-date-picker />组件地址:https://blog.csdn.net/jiciqiang/article/details/132456103#comments_30896747

        接下来我们讲下select组件的popper弹框错位问题。

一、html代码

        这里还是使用@focus事件也触发修复定位功能。

<el-select
	ref="elSelect"
	placeholder="商机状态"
	size="small"
	v-model="proStage"
	:popper-append-to-body="false"
	@focus="focusFixDateSelectPosition"
	>
	<el-option
		v-for="item in stageList"
		key="item.FieldValue"
		label="item.FieldLabel"
		value="item.FieldValue"
		>
	</el-option>
</el-select>

二、focus事件

        因为select组件的focus事件返回的参数为 FocusEvent ,则内部数据无法满足popper弹框的调整,如下图:

        要获取和picker一样的数据,得使用$refs获取,代码如下:

/**
* 解决Select定位问题
*/
focusFixDateSelectPosition(){
	let e = this.$refs['elSelect'].$refs['popper'];
	console.log('e', e);
}

如下图,此时已拿到和picker一样的数据结果,可以通过popperJS和$el进行修复定准了:

三、回调函数

        这里直接调用e.popperJS会出现undefined或null结果,所以添加定时器判断如果未获取对object对象,则回调函数直到获取e.popperJS对象为止,代码如下:

/**
 * 回调函数
 */
const selectCallback = e => {
  setTimeout(() => {
    if('undefined'===typeof e['popperJS'] || null == e['popperJS']){
      selectCallback(e);
    }else{
      e.popperJS.state.position = 'absolute';
      e.popperJS.update();
      setTimeout(() => {
         e.$el.style.top = 'inherit';
         e.$el.style.left = '0';
       }, 20);
    }
  }, 20);
}

        然后将selectCallback回调函数添加到focusFixDateSelectPosition中,代码如下:

focusFixDateSelectPosition(eve){
    let e = this.$refs['elSelect'].$refs['popper'];
    selectCallback(e);
}

        此时,下拉框错位问题则解决了,如下图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/324420.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

离线加载huggingface模型

huggingface 本地加载模型 源码位置&#xff1a; /home/anaconda3/envs/Cap3D/lib/python3.8/site-packages/huggingface_hub/file_download.py阅读里面的函数&#xff0c;可以知道下载的文件 url 和存储位置 def hf_hub_download(... ) -> str:"""Downlo…

go的安装及配置

go的官方下载地址&#xff1a;All releases - The Go Programming Language​​​​​​ 1、找到对应的版本包下载&#xff0c;例如 wget https://golang.google.cn/dl/go1.21.6.linux-amd64.tar.gz 2、下载完成后配置解压Go源码包 tar -zxf go1.21.6.linux-amd64.tar.gz 3…

LeetCode 144. 94. 145. 二叉树的前序,中序,后续遍历(详解) ੭ ᐕ)੭*⁾⁾

经过前面的二叉树的学习&#xff0c;现在让我们实操来练练手~如果对二叉树还不熟悉的小伙伴可以看看我的这篇博客~数据结构——二叉树&#xff08;先序、中序、后序及层次四种遍历&#xff08;C语言版&#xff09;&#xff09;超详细~ (✧∇✧) Q_Q-CSDN博客 144.二叉树的前序遍…

[GN] 微服务开发框架 --- Docker的应用 (24.1.9)

文章目录 前言Docekr镜像命令 Docekr镜像命令容器操作创建容器查看容器日志查看容器状态进入容器 数据卷数据集操作命令给nginx挂载数据卷给MySQL挂载本地目录 Dockerfile自定义镜像镜像结构 使用Dockerfile构建Java项目基于Ubuntu构建Java项目基于java8构建Java项目 Docker-Co…

API接口用例生成器

1、前言 随着自动化测试技术的普及&#xff0c;已经有很多公司或项目&#xff0c;多多少少都会进行自动化测试。 目前本部门的自动化测试以接口自动化为主&#xff0c;接口用例采用 Excel 进行维护&#xff0c;按照既定的接口用例编写规则&#xff0c;对于功能测试人员来说只…

[渗透测试学习] Hospital - HackTheBox

文章目录 信息搜集getshell提权信息搜集 nmap扫描一下端口 发现8080端口和443端口有http服务 然后发现3389端口是启用了ms-wbt-server服务 在对443端口的扫描没有收获,并且只有邮箱登录界面无法注册 接着看向8080端口,我们随便注册用户登录后发现有文件上传功能 getshell …

随心玩玩(十三)Stable Diffusion初窥门径

写在前面&#xff1a;时代在进步&#xff0c;技术在进步&#xff0c;赶紧跑来玩玩 文章目录 简介配置要求安装部署下载模型启动ui插件安装教程分区提示词插件Adetailer插件提示词的分步采样采样器选择采样器的收敛性UniPC采样器 高分辨率修复 (Hires. fix)图生图ControlNet介绍…

无需编程,简单易上手的家具小程序搭建方法分享

想要开设一家家具店的小程序吗&#xff1f;现在&#xff0c;我将为大家介绍如何使用乔拓云平台搭建一个家具小程序&#xff0c;帮助您方便快捷地开展线上家具销售业务。 第一步&#xff0c;登录乔拓云平台进入商城后台管理页面。 第二步&#xff0c;在乔拓云平台的后台管理页面…

一文彻底解析 Compose 的穿透刺客 -- CompositionLocal

Compose 官方说明一直很简洁&#xff1a;CompositionLocal 是通过组合隐式向下传递数据的工具。 两个核心&#xff1a;隐式、向下传递&#xff0c;咋一看很懵&#xff0c;先不着急去理解&#xff0c;我们先看一段非常简单的代码&#xff1a; class MainActivity : ComponentAc…

c语言for循环和水仙花

c语言for循环和水仙花 c语言for循环和水仙花 c语言for循环和水仙花一、for循环语句格式二、for循环案例水仙花 一、for循环语句格式 for(初始值&#xff1b;表达式&#xff1b;表达式) { 代码 }int main() {for (int i 0; i < 10; i){printf("%d\n", i);} }二、f…

Protobuf小记(万字)

Protobuf小记 序列化概念序列化和反序列化 ProtoBuf 初识快速上手通讯录 1.0通讯录 1.0 - 函数 API 小结 编译 contacts.proto 文件&#xff0c;生成 C 文件 proto 3 语法详解字段规则消息类型的定义与使用定义 通讯录 2.0通讯录 2.0 的写入实现通讯录 2.0 的输出实现通讯录 2.…

Java 线程

1. 实现多线程的 2 种方式 Oracle 官网的文档中给出了 2 种实现多线程的方式&#xff1a; 实现 Runnable 接口&#xff1b;继承 Thread 类。 以上两种方式都会调用 Thread.run() 方法&#xff0c;区别是&#xff1a; 实现 Runnable 接口&#xff0c;只是执行 Thread.run() …

数仓面试之手写拉链表SQL,并分析有多少个job

数仓面试之手写拉链表SQL&#xff0c;并分析有多少个job 拉链表定义 维护历史状态&#xff0c;以及最新状态数据的一种表&#xff0c;拉链表根据拉链粒度的不同&#xff0c;实际上相当于快照&#xff0c;只不过做了优化&#xff0c;去除了一部分不变的记录而已,通过拉链表可以…

Nginx——强化基础配置

1、牢记Context Context是Nginx中每条指令都会附带的信息&#xff0c;用来说明指令在哪个指令块中使用&#xff0c;可以将Context 理解为配置环境。 每个指令都拥有自己的配置环境&#xff0c;如果把配置环境记错了&#xff0c;或者在设计时未考虑配置环境的作用&#xff0c;…

第十二章 Java内存模型与线程(二)

文章目录 12.4 Java与线程12.4.1 线程的实现12.4.2 Java线程调度12.4.3 状态转换 12.4 Java与线程 12.4.1 线程的实现 实现线程主要有三种方式&#xff1a;使用内核线程实现&#xff08;1&#xff1a; 1 实现&#xff09;&#xff0c;使用用户线程实现&#xff08;1&#xff…

QT - qwtplot3d-3D图标

QT - qwtplot3d-3D图标 一、演示效果二、关键程序三、下载链接 一、演示效果 二、关键程序 #include "qwt3d_axis.h"using namespace Qwt3D;Axis::Axis() {init(); };Axis::~Axis() { }Axis::Axis(Triple beg, Triple end) {init();setPosition(beg,end); }void Axi…

GAN在图像数据增强中的应用

在图像数据增强领域&#xff0c;生成对抗网络&#xff08;GAN&#xff09;的应用主要集中在通过生成新的图像数据来扩展现有数据集的规模和多样性。这种方法特别适用于训练数据有限的情况&#xff0c;可以通过增加数据的多样性来提高机器学习模型的性能和泛化能力。 以下是GAN在…

RabbitMQ交换机(2)-Direct

1.Direct 直连(路由)交换机,生产者将消息发送到交换机&#xff0c;并指定消息的Routing Key&#xff08;路由键&#xff09;。交换机会将Routing Key与队列绑定进行匹配&#xff0c;如果匹配成功&#xff0c;则将该消息路由到对应的队列中。如果没有匹配成功&#xff0c;该消息…

如何看待 Linux 内核邮件列表重启将内核中的 C 代码转换为 C++

如何看待 Linux 内核邮件列表重启将内核中的 C 代码转换为 C 的讨论&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Linux的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿…

2024年腾讯云服务器购买价格,真便宜

腾讯云服务器租用价格表&#xff1a;轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;2核4G5M带宽756元三年、轻量4核8G12M服务器446元一年、646元15个月&#xff0c;云服务器CVM S5实例2核2G配置280.8元一年…
最新文章