基于Material实现下拉框多选并且可点击“x”删除(Chips)

  • 需求
  • 实现
  • 写在最后

需求

近期在使用Material搭建一个后台系统,遇到一个如下需求:

功能需求如下:输入框获取焦点时弹出下拉框,下拉框同时支持多选,选中的值会以Material提供的chips的形式显示在输入框的前部,同时chips要支持可点击“x”删除,其实这个需求还是蛮常见的,就是一个支持模糊搜索的多选下拉框,但是我找遍了Material的官方文档也没找到这个功能的api或代码段,官方文档倒是有chips但是不支持下拉框,有下拉框但是不支持多选,有多选但是又不支持chips,只好自己手动把这三个功能实现在一起了。

实现

查看Material的官方文档很快就可以找到这样一个代码段:chips

功能与我们想要实现的需求有部分类似,于是我就想以这个官方功能为基础进行扩展,还需要扩展的功能如下:弹出下拉框,支持多选并赋值,同时失去焦点隐藏下拉框,话不多说,Show me the code:

<template><div class=""><div class="closeArea"v-show="showCustomInput"@click="showCustomInput = false"></div><div class="CustomInput"><div class="md-field md-theme-default":class="{'md-focused':isFocus,'md-has-value':chipsArr.length!=0}"><label for="md-input-34pnj2lffo">成员</label><div class="chipsIn"><md-chipv-for="item in chipsArr"md-deletable @md-delete="testCons">{{item.name}}</md-chip><input@focus="inputFocusAction"@blur="inputBlurAction"type="text" id="md-input-34pnj2lffo" class="md-input"></div><!--<i class="md-icon md-icon-font cur md-theme-default">--><!--<i class="fa fa-sort-amount-desc filter_icon"></i>--><!--</i>--></div><div class="drop_down_area" v-show="showCustomInput"><ul><li v-for="item in chipsArr"@click="addArr(item)">{{item.name}}</li></ul></div></div></div>
</template><script>import {mapGetters} from 'vuex'export default {data() {return {isFocus: false,showCustomInput: false,chipsArr: [{index: 0,name: "Deletable0"}, {index: 1,name: "Deletable1"}, {index: 2,name: "Deletable2"}, {index: 0,name: "Deletable0"}, {index: 1,name: "Deletable1"}, {index: 2,name: "Deletable2"},],}},computed: {...mapGetters(['',])},created() {},methods: {testCons() {this.chipsArr.splice(0,1)},addArr(item){this.chipsArr.push(item)},inputFocusAction(){this.isFocus = true;this.showCustomInput = true;},inputBlurAction(){this.isFocus = false;},}}
</script><style lang="scss" scoped>.closeArea{width: 100%;height: 100%;position: absolute;left: 0;top: 0;}//自定义复选下拉框样式.CustomInput {position: relative;.md-chip {float: left;height: 24px;line-height: 24px;margin: 4px 4px 0 0;}.md-field {display: block;}.chipsIn {max-height: 300px;overflow-y: scroll;}.md-input {width: 130px;}.drop_down_area::-webkit-scrollbar{width: 0;}.drop_down_area {width: 100%;height: 200px;background-color: #fff;position: absolute;left: 0;top: 100%;overflow-y: scroll;border: 1px solid #E7E7E7;z-index: 7;ul {li {width: 100%;height: 32px;line-height: 32px;padding-left: 20px;cursor: pointer;transition: .3s cubic-bezier(.25, .8, .25, 1);&:hover {background-color: #D5E3F6;}}}}}
</style>

其实实现起来还是蛮简单的,主要是Material竟然不提供这个功能着实很让人无助,(其实还有很多大众需求都不怎么支持,我将在后续文档继续介绍,不过也不能怪Material,毕竟这是一款移动端插件,而且受众国内开发者确实不多。)

写在最后

希望这篇文档能给您带来帮助,感谢阅读。

基于Material实现下拉框多选并且可点击“x”删除(Chips)相关推荐

  1. 基于Bootstrap的下拉框多选 Bootstrap Multiselect 插件使用

    基于Bootstrap的下拉框多选插件 Bootstrap Multiselect 的使用方法 1.首先去下载代码:https://github.com/davidstutz/bootstrap-mu ...

  2. bootstrap-select实现下拉框多选效果

    bootstrap-select实现下拉框多选效果 听语音 在学习bootstrap实现下拉多选效果的时候,觉得该效果很好,所以拿来分享下,这里就不详细的描述了,直接附上代码给各位看看 方法/步骤 1 ...

  3. easyui前端实现多选框_EasyUI实现下拉框多选功能

    本文实例为大家分享了EasyUI实现下拉框多选展示的具体代码,供大家参考,具体内容如下 效果图: 这个没什么说的,直接引入css和js文件和图片,调用js即可.下面是源码: 利用EasyUI实现多选下 ...

  4. Excel怎么下拉框多选

    打开Exlce, 确定,然后 右击查看代码,把这段代码复制到新建的文件里面 此时Excel会给出提示,选择否,,系统会提示保存,在保存的时候选择启用宏的工作簿然后保存,此时Excel下拉框多选就搞定了 ...

  5. 关于EXCLE 下拉框多选的设置

    关于EXCLE 下拉框多选的设置. 本文转载于:https://www.cnblogs.com/boosasliulin/p/5970120.html 本文转载于:https://blog.csdn. ...

  6. 如何设置下拉框的选中项

    设置下拉框中选中项 当点击设置按钮时,下拉框的默认值会被随机选中.做以下学习记录: 要完成设置下拉框的选中项,我们要解决以下问题: 给按钮注册事件 获取下拉框中所有的option 随机生成索引 根据索 ...

  7. php下拉多选框,excel下拉框多选打勾的设置方法

    excel下拉框多选打勾的设置方法 一.显示"开发工具"选项卡.打开Excel2010,点击左上方"文件"图标.点击"选项",弹出" ...

  8. 力软下拉框多选_jquery实现下拉框多选

    一.说明 本文是利用EasyUI实现下拉框多选功能,在ComboxTree其原有的基础上对样式进行了改进,样式表已上传demo,代码如下 二.代码 利用EasyUI实现多选下拉框 $(function ...

  9. 力软下拉框多选_jquery实现下拉框多选方法介绍

    一.说明 本文是利用EasyUI实现下拉框多选功能,在ComboxTree其原有的基础上对样式进行了改进,样式表已上传demo,代码如下 二.代码 利用EasyUI实现多选下拉框 $(function ...

最新文章

  1. 线程安全操作HashMap
  2. 匹配月份_5月份轿车销量榜单出炉 雅阁热销18634辆
  3. kali入侵windows
  4. matlab与python交互_Python和MATLAB交互的基本操作
  5. hdu 3303(线段树+抽屉原理)
  6. 微信小程序——真机调试方法(vConsole)
  7. Java StringBuilder codePointAt()方法与示例
  8. 《OEA - 实体扩展属性系统 - 设计方案说明书》
  9. iPhoneXI/XI MAX机模曝光:浴霸式摄像头着实抢眼
  10. 洛谷 P1356 数列的整数性 解题报告
  11. 超星阅读器书籍导出为pdf
  12. 【软件工程师学硬件】之 单片机
  13. Oracle管理的文件(OMF)的具体含义
  14. 德国奇葩经历之护照丢失
  15. 【译】Learn D3 入门文档:Joins
  16. rewrite break
  17. demon算法 matlab,Ncut图像分割算法MATLAB实现
  18. vw 前端_【前端适配】vw+rem自适应适配方案
  19. 在已安装win10环境中利用EasyBCD引导安装Ubuntu18.04
  20. Linux内核学习笔记(一) 虚拟文件系统VFS

热门文章

  1. 在windows上搭建React Native开发环境
  2. 个人随笔-求学求职-工作经历-计划
  3. mysql求学号的总分_有一个student表,有学号,姓名,科目,成绩等字段,请写一条sql语句,算出学生的总分数?...
  4. 安搭Share:iPhone 12 MagSafe皮套实物首亮相
  5. 面试经历-201106
  6. 信息资源管理概论--练习题
  7. 从共享单车到共享女友的一地鸡毛
  8. 群晖传文件到服务器,文件上传到群晖服务器
  9. 《学Unity的猫》——第九章:状态机与Unity协程,好奇猫与铁皮怪水管
  10. 美国纽约大学计算机专业排名,纽约大学计算机科学排名怎么样?专业好不好?