element-ui按钮点击后不失焦
这个问题在使用 Element-UI 的 el-button 时比较常见。点击按钮后,按钮会保持焦点状态,即使鼠标移出按钮,按钮的样式也不会恢复到原来的状态。这是因为按钮在点击后会触发 :focus 选择器。
解决这个问题有几种方法:
1.使用 CSS 覆盖默认样式: 你可以在全局样式中覆盖 el-button 的 :focus 样式,使其与按钮的默认样式一致。这样,当按钮失去焦点时,样式会恢复到原来的状态。
CSS
.el-button:focus {
color: var(--el-button-text-color);
background-color: var(--el-button-bg-color);
border-color: var(--el-button-border-color);
}
<script>
export default {
methods: {
handleClick(event) {
event.target.blur();
}
}
}
</script>
这些方法都可以有效解决 el-button 点击后鼠标移出按钮没有失焦的问题。你可以根据自己的需求选择合适的方法来实现。
透明的按钮不自动失焦的效果会更加明显。可以自定义一个强制按钮失焦的事件,在@click绑定事件中执行。
<el-button
type="danger"
size="small"
icon="el-icon-delete"
@click="addHandler($event)"
>批量删除</el-button>
addHandler(event) {
this.cancelButtonFocusStatus(event);
}
cancelButtonFocusStatus(evt) {
//点击空白处,target为button;点击字体处,target为span;点击图标处,target为i。后两者本身没有blur,需要判断取父节点button
let target = evt.target;
if (target.nodeName == "SPAN" || target.nodeName == "I") {
target = target.parentNode;
}
target.blur();
}
为什么要失焦?你又没有点击其他元素,或者通过业务代码修改你的焦点。
换个比较容易理解的:如果你点击的是一个input元素,那么点击之后为啥要把input失焦?
如果你想要在鼠标移出按钮之后,让按钮失去焦点。那么你需要额外的添加对应的业务逻辑:
比如说:
<el-button type="primary" @mouseleave.native="e => e.target.blur()">主要按钮</el-button>
在Element UI中,按钮(<el-button>
)在点击后通常不会“失焦”,因为它本身并不是一个可聚焦的元素(如输入框或链接)。按钮在点击后通常只是触发一个事件(如点击事件),然后页面可能会根据这个事件进行导航、数据提交或其他操作,但按钮本身并不会失去焦点,因为它在DOM中并不是一个可聚焦的元素。
然而,如果你是在讨论一个类似按钮的元素(如一个可聚焦的按钮组件或自定义元素),并且希望它在点击后保持某种“激活”状态或样式(类似于不“失焦”的视觉效果),那么这通常不是由Element UI按钮直接控制的,而是需要通过额外的逻辑来实现。
以下是一些可能的解决方案:
使用CSS类: 当按钮被点击时,可以通过JavaScript动态地添加一个CSS类来改变其样式,使其看起来像是保持激活状态。
document.querySelector('.your-button').addEventListener('click', function() {
this.classList.add('active');
// 可以在需要时移除这个类
// this.classList.remove('active');
});
.your-button.active {
/* 激活状态的样式 */
background-color: #409EFF; /* 举例,Element UI蓝色主题 */
color: white;
}
利用Element UI的loading
状态: 如果你的目的是防止用户在按钮操作未完成前重复点击,Element UI的按钮组件提供了loading
属性,可以在点击时显示加载状态。
<el-button :loading="isLoading" @click="handleClick">点击我</el-button>
data() {
return {
isLoading: false,
};
},
methods: {
handleClick() {
this.isLoading = true;
// 模拟异步操作
setTimeout(() => {
this.isLoading = false;
}, 2000);
},
}
ref
属性或其他方式控制其样式或行为。总之,Element UI的<el-button>
组件本身在点击后不会有“失焦”的概念,因为它不是一个可聚焦的元素。如果你的场景有特殊需求,可能需要通过额外的逻辑或样式来实现期望的效果。
使用鼠标库,您可以使用Arduino Leonardo,Micro或Due控制计算机的屏幕光标。 此特定示例使用五个按钮移动屏幕上的光标。 其中四个按钮是方向性的(向上,向下,向左,向右),一个用于鼠标左键单击。 Arduino的光标移动始终是相对的。 每次读取输入时,光标的位置都会相对于其当前位置进行更新。 每当按下一个方向按钮时,Arduino将移动鼠标,将HIGH输入映射到适当方向的5的范围
我正在制作看板,我有一列在里面,它用一个网格窗格划分在标题和下面的卡片列表之间。我正在使用场景生成器构建此场景。 所以层次结构是 当我按下卡上的按钮时,我希望它移除我单击的卡。 我已经做了以下工作 然而,当我按下按钮时什么也没有发生,卡没有被删除,我也不知道为什么。如果有人能帮我,那就太好了。
我有一个带有EditText和按钮的活动。当用户单击EditText时,会显示键盘,他可以输入一些Text-很好。但是当用户单击按钮时,我希望EditText不再对焦,即键盘隐藏,直到用户再次单击EditText。 单击按钮后,如何“隐藏EditText的焦点”。我可以在按钮的OnClick方法中添加一些代码来实现这一点? 编辑: 顺致敬意,
介绍 按钮用于触发一个操作,如提交表单。 引入 import { createApp } from 'vue'; import { Button } from 'vant'; const app = createApp(); app.use(Button); 代码演示 按钮类型 按钮支持 default、primary、success、warning、danger 五种类型,默认为 defau
mui默认按钮为灰色,另外还提供了蓝色(blue)、绿色(green)、黄色(yellow)、红色(red)、紫色(purple)五种色系的按钮,五种色系对应五种场景,分别为primary、success、warning、danger、royal;使用.mui-btn类即可生成一个默认按钮,继续添加.mui-btn-颜色值或.mui-btn-场景可生成对应色系的按钮,例如:通过.mui-btn-b
import { Button } from 'feui'; components: { [Button.name]: Button } 代码演示 按钮类型 支持default、primary、warn三种类型,默认为default <fe-button type="default">页面次要操作</fe-button> <fe-button type="primary">页面主要