【vue】解决element-ui的el-select下拉框中选项内容太长问题

实现效果:

1.给下拉框设置最大宽度;

2.内容一行展示,不换行,多余部分显示省略号;

3.有省略号的那一行,加悬浮提示;

4.没有省略号的地方不加悬浮提示


代码展示:

复制代码
<template>
  <el-select :popper-append-to-body="false">
    <el-option v-for = "item in dataList" :key = "item.value" :label = "item.label" :value = "item.value">
        <el-tooltip effect="light" :disabled="isShowTooltip" :content="item.label" placement="top">
          <div class="option-item" @mouseover="spanMouseenter($event)">
            {{ item.label }} 
          </div>
        </el-tooltip>
    </el-option>
  </el-select>
</template>
<script>
export default {
  data() {
    return {
      isShowTooltip: true,
    };
  },
  methods: {
    spanMouseenter(e) {
       let target = e.target
      if (target.clientWidth < target.scrollWidth) {
        this.isShowTooltip = false;
      } else {
        this.isShowTooltip = true;
      }
    },
  },
};
</script>
<style>
.option-item {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.el-select /deep/ .el-select-dropdown__item {
  max-width: 600px;
}
</style>
相关推荐
W_LuYi1851 小时前
Tauri + Rust + Vue 3 打造极速轻量桌面应用
java·开发语言·vue.js·rust
winfredzhang1 小时前
用 Node.js + SQLite + 原生前端写一个本地情绪急救 Web App:情绪降落伞 Mood Parachute
前端·sqlite·node.js·express·情绪管理
qq4356947011 小时前
Vue03
javascript·vue.js
樱花的浪漫1 小时前
Typescript、Zod基础
前端·javascript·人工智能·语言模型·自然语言处理·typescript
Bigger2 小时前
记一次坑爹的 Cloudflare Pages 部署:Failed to load module script 是怎么把我的 SPA 搞挂的
前端·ci/cd·浏览器
用户549591657502 小时前
TinyVue Tree树形控件完全指南
vue.js
竹林8182 小时前
监听智能合约事件,我用 wagmi v2 踩了三天坑,终于找到了稳定方案
前端·javascript
星栈2 小时前
Makepad 界面怎么做得更像产品,而不是示例
前端·rust
用户852495071842 小时前
Bun 到底是什么?一个比 Node.js "更快更香"的 JS 运行时
javascript·程序员
Momo__2 小时前
SSR 懒水合四件套 — 99%的人不知道 Vue 3.5 藏了这些水合策略
前端·vue.js·性能优化