elementUI 下拉框加提示文案

本文介绍了如何使用Vue.js中的el-select组件实现下拉框的显示/隐藏联动,以及如何动态添加文案提示和调整样式,确保下拉框与select元素宽度一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

效果如下:
展示文案在最下面,跟选项有个分割线

在这里插入图片描述

 <el-select v-model="value" placeholder="请选择"  clearable popper-class="addNotice" class="addNoticeS" @visible-change="(v) =>selectNotice(v,'展示的提示文案')" >
              ......
              </el-select>
  • visible-change 事件监听下拉框的显示与隐藏
/**
 * 下拉框 文案提示
 * @param visible 是否展示
 * @param notice  文案
 */
function selectNotice(visible, notice) {
  if (visible) {
  //下拉框出现时,动态创建需要添加的元素
    $('.el-select-dropdown').append(`<div class='select_addname_line'></div><div class='select_addname'>${notice}</div>`)
  } else {//关闭时要清空,防止累加
    $('.select_addname').remove()
    $('.select_addname_line').remove()
  }
}
//文案样式
.select_addname{
  position: relative;
  max-width: 100% !important;
    box-sizing: border-box;
 padding: 14px 2% 20px;
  color: #909399;
}
//分割线
.select_addname_line{
  height: 1px;
  width: 100%;
  background:#909399 ;
  transform: scaleY(0.5);
}

为了保证下拉框跟select等宽度需要加一下调

  • 加自定义类名addNotice调整最外层popper的样式
  • 加类名addNoticeS,动态获取select的宽度
.addNotice{
  background: #FFF !important;
}

jQuery进行样式调整,保证下拉框跟select等宽

 nextTick(() => {
          let width=$('.addNoticeS').width() + "px"
          $('.addNotice').css({width})
        });
### 实现带有 Checkbox 的多选下拉框 在 Vue3 和 ElementUI 中实现带有 `checkbox` 的多选下拉框组件可以通过自定义 `el-select` 组件来完成。通过组合使用 `el-select` 和 `el-option`,并引入 `el-checkbox-group` 来处理多选逻辑。 #### HTML 结构与绑定数据源 创建一个多选下拉框的基础结构如下: ```html <template> <div class="multi-select-container"> <!-- 使用 v-model 绑定已选择的数据 --> <el-select v-model="selectedValues" multiple placeholder="请选择"> <el-checkbox-group v-model="checkedOptions"> <el-option v-for="(item, index) in options" :key="index" :label="item.label" :value="item.value" > <span style="float: left">{{ item.label }}</span> <el-checkbox :label="item.value"></el-checkbox> </el-option> </el-checkbox-group> </el-select> </div> </template> <script setup lang="ts"> import { ref } from 'vue'; // 定义选项数组 const options = [ { value: 'option1', label: '黄金糕' }, { value: 'option2', label: '双皮奶' }, { value: 'option3', label: '蚵仔煎' } ]; // 已选择的值集合 const selectedValues = ref([]); const checkedOptions = ref([]); // 监听变化事件 watch(selectedValues, newValue => { console.log('Selected:', newValue); }); </script> ``` 上述代码展示了如何构建一个基本的选择器[^1]。然而,在实际应用中可能还需要考虑更多细节,比如样式调整、性能优化以及用户体验改进等问题。 对于更复杂的场景,如需入全选功能,则可以在原有基础上进一步扩展。一种常见的做法是在选项列表顶部添一个特殊的 "全部" 或者 "全选/取消全选" 项,并监听其状态改变以同步更新其他子项的状态[^2]。 另外值得注意的是,当涉及到大量数据时,建议采用虚拟滚动技术或其他方式减少渲染开销;同时也要注意防止频繁触发不必要的重新计算或重绘操作影响效率[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值