前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue鼠标移入移出显示和隐藏_labview树形控件卡

vue鼠标移入移出显示和隐藏_labview树形控件卡

作者头像
全栈程序员站长
发布2022-09-21 20:49:56
2.5K0
发布2022-09-21 20:49:56
举报

大家好,又见面了,我是你们的朋友全栈君。

实现效果与原理

我们希望实现鼠标移动至树型结构的结点上就显示按钮,移出就隐藏按钮 实现原理:是通过@mouseenter@mouseleave两个属性来控制鼠标hover的效果,再配合v-show来控制是否展示你需要的控件

vue鼠标移入移出显示和隐藏_labview树形控件卡
vue鼠标移入移出显示和隐藏_labview树形控件卡

具体代码

代码语言:javascript
复制
<el-tree
  :data="data"
  ref="tree"
  default-expand-all
  node-key="id"
  :expand-on-click-node="false">
  <span class="custom-tree-node" slot-scope="{ node, data }" @mouseenter="mouseenter(data)" @mouseleave="mouseleave(data)">
    <span>{{ node.label }}</span>
    <span>
      <el-tooltip v-show="data.show" class="item" effect="dark" content="文字提示" placement="top">
        <el-button
          type="text"
          size="mini"
          @click="() => append(data)"
          icon="el-icon-plus"
        >
        </el-button>
      </el-tooltip>
      <el-dropdown v-show="data.show" @command="handleCommand">
        <span class="el-dropdown-link">
          <i class="el-icon-more"></i>
        </span>
        <el-dropdown-menu slot="dropdown">
          <el-dropdown-item command="addFolder">新增文件夹</el-dropdown-item>
          <el-dropdown-item command="edit">编辑</el-dropdown-item>
          <el-dropdown-item command="delete">删除</el-dropdown-item>
        </el-dropdown-menu>
      </el-dropdown>
    </span>
  </span>
</el-tree>
<script>
export default {
  data() {
    const data = [{
      id: 1,
      label: '一级 1',
      children: [{
        id: 4,
        label: '二级 1-1',
      }]
    }, {
      id: 2,
      label: '一级 2',
      children: [{
        id: 5,
        label: '二级 2-1',
      }, {
        id: 6,
        label: '二级 2-2',
      }]
    }, {
      id: 3,
      label: '一级 3',
      children: [{
        id: 7,
        label: '二级 3-1',
      }, {
        id: 8,
        label: '二级 3-2',
      }]
    }]
    return {
      defaultProps: {
        children: 'children',
        label: 'label'
      },
      data: JSON.parse(JSON.stringify(data))
    }
  },
  methods: {
    mouseenter(data) {
      this.$set(data, 'show', true)
    },
    mouseleave(data) {
      this.$set(data, 'show', false)
    },
  }
}
</script>

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/166056.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实现效果与原理
  • 具体代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档