基于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. 两个小技巧,马上加快上网速度
  2. 牛客 - 交换(思维+找循环节)
  3. 手工代付系统/api代付系统/代付系统源码
  4. 【SAP HANA】关于SAP HANA中带层次结构的Analytic View创建、激活状况下在系统中生成对象的研究...
  5. 腾讯获准在中国销售Switch游戏机 任天堂股价应声飙升逾14%
  6. 【爬虫剑谱】三卷2章 拾遗篇-有关于re库的使用小结
  7. redis笔记1---基础
  8. linux从一台服务器传输文件到另一台服务器上
  9. VisualStudio中解决方案
  10. 判断某点在多边形内——方法二
  11. MongoDB简单CRUD场景
  12. Atitit 架构艺术 与架构常见包含的技术 1. 架构的目的是什么??解决的问题 所有的问题都能通过架构解决 2 1.1. 提高可读性 提升可维护性架构 降低技术难度 2 1.2. 提升管理性
  13. Python中Scapy使用方法,模块中的常用函数,简单的端口扫描编写
  14. Elasticsearch:如何在聚合时选择所需要的 bucket 并进行可视化
  15. MySQL两种存储引擎: MyISAM和InnoDB 简单总结
  16. html、css、js粒子特效——前端
  17. 让Y40上的MAC启动更快
  18. 工业大型设备数字孪生 数字化改造三维动态大屏展示
  19. 小程序用户头像昵称,微信头像昵称填写onChooseAvatar(2022最佳实践uniapp和原生)
  20. linux 6.5升级nss,centos6.5 - centos 6.5系统PHP环境下的CURL库的SSL Version默认为NSS,怎么变更为OpenSSL?...

热门文章

  1. 我的世界药水合成表图Java_我的世界药水合成表图分享 我的世界药水合成配方大全...
  2. hook(2)Activity启动流程,涨知识
  3. 冲量在线创始人刘尧:以信创软硬件结合场景为突破口“占山为王”
  4. HTML标签之文档结构标签
  5. 1619 例题 Prime Distance(POJ2689 LOJ10197 UVA10140 提高+/省选-) 线性筛 映射关系 0分 筛出区间内质数 超时0分 求任意区间质数的筛子100分
  6. 除了office,常用的办公软件还有这些
  7. 【BX学习之生活问题】 福建工商-个体户-工商年报-登录方式
  8. 语音识别工具箱综述和产品介绍
  9. git 错误error: failed to push some refs to
  10. 选股绝招[如何抓住狂涨的黑马]