前端开发之ElementUI下拉选项框select添加小图标

项目开发刚好遇到ElementUI下拉选项框select添加小图标这个问题,网上搜索了一下,并没有找到回答,就自己写下思路,

正常情况下是这样的初始状态的


ElementUI的select选择器

初始代码是这样的


ElementUI的初始代码

首先第一步,先在下拉框中添加小图标,如果没有类型要求的话直接使用:nth-child(odd)和:nth-child(even)选择器


下拉选择框样式

如果有类型要求,比如说1是高热量食品,2是低热量食品,那么就添加一个:class动态绑定样式


类型要求添加:class


类型要求样式代码

效果图


效果图

如果觉得图片和文字在最左边不好看,可以使用相对定位右移一点,如果出现横向滚动条,则可以设置width为98%,这些不是太重要,接着讲第二步,要把select中的数据添加小图标,先给个左内边距,这是小图标放的位置,可以鼠标右键,点击检查,找到数据的样式,选择deep深度选择器,添加样式


数据初始样式


数据穿透后的样式

接下来就是第三步给空出来的这个位置添加对应的小图标了,

先说下思路,第一小点,先把select隐藏掉,第二小点,创建一个新的div覆盖住隐藏的位置,第三小点,添加图标 + 数据 + ×

第一小点,把select隐藏可以用display:none或者是visibility:hidden,区别就是通过DOM删除节点和用css隐藏节点,两者都可以,隐藏后的效果图


隐藏select后的效果图

顺便一提,第二步左内边距的设置可有可无(毕竟第三步都隐藏掉了),但既然写了,至少可以作为参考,然后是第二小点,创建一个新的span覆盖住select的内容,使用相对定位或者是绝对定位的方法


新的span覆盖select后的效果图

第三点,添加图标,先导入图片,直接import引入图片的静态资源地址


导入图片效果图

然后做下判定,筛选出想要的图片


等等,值好像跟内容有所偏差,比如说,第一个是黄金糕,结果显示的是选项1,那可以把{{item}}改成{{item1.label}}


好像完成的差不多了,还差了个×号,那么可以补一下<i class="el-icon-close"></i>,这个是×号的图标,想要变成圆形×号可以把el-icon-close改成el-icon-circle-close


添加×号后的效果图

好像点击×号没有反应,当然,因为没有添加点击事件,现在补个@click事件


×号点击事件

注意点,@click="delectElement(index)"必须加index这个形参,index指的是当前删除的位置,然后使用数组的splice()方法删除想要删除的元素

好了,大功告成了,最后稍微加点样式美化下吧


最后效果图

源码就不发了,思路已经讲得够清楚了,如果有帮助的话希望可以点个赞,如果有可以改进的地方,麻烦多多指点,以上,谢谢。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容