el-button实现按钮,鼠标移入显示,移出隐藏

2023.8.18今天我学习了 如何实现鼠标移入显示按钮,鼠标移出隐藏按钮。

效果如图:

鼠标移入时:

鼠标移出时:

 

@mouseover //鼠标移入事件
@mouseleave //鼠标移出事件

 原本我是想直接在el-button写入这两个方法,但是elementUI并不支持。

所以我在外面套了一层div

<template>
    <div>
        <div @mouseover="showButton" @mouseleave="leaveButton" style="width: 6vh;height: 3vh;">
            <el-button
                :class="buttonStyle?'show_button_style':'leave_button_style'"
              >切换
            </el-button>
        </div>
    </div>
</template>

<style>
//鼠标移入样式
.show_button_style{
  width:6vh;
  height:3vh;
  display:inline-block
}
//鼠标移出样式
.leave_button_style{
  width:6vh;
  height:3vh;
  display:none
}
</style>

<script>
export default{
    data(){
     return{
        buttonStyle:false//默认隐藏
      }
    },
    methods:{
       //鼠标移入时
       showButton(){
        this.buttonStyle = true//显示
      },
       //鼠标移出时
      leaveButton(){
        this.buttonStyle = false//隐藏
      }
    }

 }
</script>

Element UI的`el-tree`组件中,如果在节点的鼠标悬停时按钮闪烁不停,这通常是由于事件监听器未正确管理或者处理动画效果出现了问题。当你将鼠标移到某个节点上时,可能触发了添加或删除按钮显示的函数,但在离开时没有及时清除或更新相应的定时器或回调。 解决这个问题的一般步骤如下: 1. 首先,确保你在`el-tree`节点的`hover`事件处理器中控制按钮显示状态。例如,你可以创建一个变量来跟踪当前是否应该显示按钮,并在`enter`时设置为true,在`leave`时设置为false。 ```javascript let showButton = false; <el-tree :props="treeProps" @node-enter="handleNodeEnter" @node-leave="handleNodeLeave" > </el-tree> methods: { handleNodeEnter(node) { showButton = true; // 显示按钮的逻辑 }, handleNodeLeave(node) { showButton = false; // 清理定时器或其他相关操作 } } ``` 2. 检查是否有未关闭的定时器或异步操作导致按钮闪烁。每次进入和离开节点时,你需要检查并清除可能存在的定时器,如`setTimeout`或`setInterval`。 ```javascript handleNodeLeave() { if (this.buttonTimeoutId) { clearTimeout(this.buttonTimeoutId); } } ``` 3. 如果仍然存在闪烁,检查其他可能影响元素样式的CSS规则,确保当按钮隐藏时,相关的样式也已更改。 如果你已经按照以上步骤检查但仍存在问题,可能需要提供更多的代码片段以便更精确地诊断问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI小奶龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值