Ant Design Vue (2x) 按钮(button)单击后离开,按钮状态无变化

Ant Design Vue (2x) 按钮(button)单击后离开,按钮状态无变化

场景:

使用Ant Design 2x 开发,在使用<a-button> 时,鼠标浮上,按钮高亮,摁下后依然高亮,鼠标松开并离开后高亮依然显示。

问题:

上面的场景与我想要的不一样,鼠标浮上和摁下后高亮是我们需要的,但是我鼠标都松开而且离开按钮了,你还高亮,这就有问题了啊。 时间证明这的确是一个问题,因为我发现在后面的版本 4x 中这个问题已经被解决了。

解决方案

  1. 更新版本到 4x,但是对于一个项目来说,UI库的版本更新,会存在很多隐藏的问题。
  2. 自己解决。

我的方案:

我经过更新版本的风险评估后,感觉我还是自己解决更安全一些,承担不了更新后出现的不确定性问题带来的后果。

分析问题:

鼠标离开按钮后,高亮没有消失,两种情况

  1. hover样式一直存在
  2. focus样式一直存在

定位问题:

通过分别设置 :hover 和 :focus 的样式来定位是哪个属性

css 复制代码
:deep(.ant-btn:hover){
    color:red
  }
  :deep(.ant-btn:focus){
    color:green
  }

经过实验发现,是鼠标松开离开后,focus属性依然存在

解决问题:

在鼠标松开后,手动移除Ant Design 库中 的focus属性

实际应用:

  1. 给 通过ref进行标记
ini 复制代码
  <a-button  ref="btnRef"  @mouseup="handleMouseUp()" > </a-button>
  1. 在mouseup时,通过blur()方法移除focus
ini 复制代码
	cosnt btnRef = ref(null)
 	const handleMouseUp = () => {
		btnRef.value?.$el?.blur();
	}

经过上如设置,Ant Design 中按钮鼠标离开高亮不消失的问题就解决了。 如果对你有帮助,请点赞收藏欧,一路生花~~嘿嘿

相关推荐
风月说与山鬼2 小时前
二、React入口文件(main.jsx)
前端·react.js
东风破_7 小时前
Docker 基础:为什么需要容器?
前端·后端·nginx
东风破_7 小时前
Docker 实战:使用 Nginx 作为容器入口代理 Node 服务
前端·后端·nginx
你别说话了8 小时前
Vue项目解决跨域
前端·javascript·vue.js
唐青枫8 小时前
http-server:别再双击 index.html,一条命令把目录变成网站
前端·javascript
网安蟹佬霸9 小时前
OSINT开源情报收集实战:从信息搜集到资产测绘(2026最新万字保姆级指南)
前端·网络·安全·web安全·网络安全·开源
a1117769 小时前
3D历史建筑展览馆 THreeJS 开源
前端·开源
单线程_019 小时前
【源码阅读】Vue3 Tokenizer 词法分析器完整状态机流转深度梳理(3.4+ 新版架构)
前端
PBitW10 小时前
PM 丢来 3 个 Excel、12 个功能、4 种情形?用 TRAE Work 30 分钟整理成前端开发文档
前端·trae
风骏时光牛马12 小时前
AIAgent高可用架构:弹性容错与故障自愈的落地实践
前端