基于Material实现下拉框多选并且可点击“x”删除(Chips)
基于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)相关推荐
- 基于Bootstrap的下拉框多选 Bootstrap Multiselect 插件使用
基于Bootstrap的下拉框多选插件 Bootstrap Multiselect 的使用方法 1.首先去下载代码:https://github.com/davidstutz/bootstrap-mu ...
- bootstrap-select实现下拉框多选效果
bootstrap-select实现下拉框多选效果 听语音 在学习bootstrap实现下拉多选效果的时候,觉得该效果很好,所以拿来分享下,这里就不详细的描述了,直接附上代码给各位看看 方法/步骤 1 ...
- easyui前端实现多选框_EasyUI实现下拉框多选功能
本文实例为大家分享了EasyUI实现下拉框多选展示的具体代码,供大家参考,具体内容如下 效果图: 这个没什么说的,直接引入css和js文件和图片,调用js即可.下面是源码: 利用EasyUI实现多选下 ...
- Excel怎么下拉框多选
打开Exlce, 确定,然后 右击查看代码,把这段代码复制到新建的文件里面 此时Excel会给出提示,选择否,,系统会提示保存,在保存的时候选择启用宏的工作簿然后保存,此时Excel下拉框多选就搞定了 ...
- 关于EXCLE 下拉框多选的设置
关于EXCLE 下拉框多选的设置. 本文转载于:https://www.cnblogs.com/boosasliulin/p/5970120.html 本文转载于:https://blog.csdn. ...
- 如何设置下拉框的选中项
设置下拉框中选中项 当点击设置按钮时,下拉框的默认值会被随机选中.做以下学习记录: 要完成设置下拉框的选中项,我们要解决以下问题: 给按钮注册事件 获取下拉框中所有的option 随机生成索引 根据索 ...
- php下拉多选框,excel下拉框多选打勾的设置方法
excel下拉框多选打勾的设置方法 一.显示"开发工具"选项卡.打开Excel2010,点击左上方"文件"图标.点击"选项",弹出" ...
- 力软下拉框多选_jquery实现下拉框多选
一.说明 本文是利用EasyUI实现下拉框多选功能,在ComboxTree其原有的基础上对样式进行了改进,样式表已上传demo,代码如下 二.代码 利用EasyUI实现多选下拉框 $(function ...
- 力软下拉框多选_jquery实现下拉框多选方法介绍
一.说明 本文是利用EasyUI实现下拉框多选功能,在ComboxTree其原有的基础上对样式进行了改进,样式表已上传demo,代码如下 二.代码 利用EasyUI实现多选下拉框 $(function ...
最新文章
- 两个小技巧,马上加快上网速度
- 牛客 - 交换(思维+找循环节)
- 手工代付系统/api代付系统/代付系统源码
- 【SAP HANA】关于SAP HANA中带层次结构的Analytic View创建、激活状况下在系统中生成对象的研究...
- 腾讯获准在中国销售Switch游戏机 任天堂股价应声飙升逾14%
- 【爬虫剑谱】三卷2章 拾遗篇-有关于re库的使用小结
- redis笔记1---基础
- linux从一台服务器传输文件到另一台服务器上
- VisualStudio中解决方案
- 判断某点在多边形内——方法二
- MongoDB简单CRUD场景
- Atitit 架构艺术 与架构常见包含的技术 1. 架构的目的是什么??解决的问题 所有的问题都能通过架构解决	2 1.1. 提高可读性 提升可维护性架构 降低技术难度	2 1.2. 提升管理性
- Python中Scapy使用方法,模块中的常用函数,简单的端口扫描编写
- Elasticsearch:如何在聚合时选择所需要的 bucket 并进行可视化
- MySQL两种存储引擎: MyISAM和InnoDB 简单总结
- html、css、js粒子特效——前端
- 让Y40上的MAC启动更快
- 工业大型设备数字孪生 数字化改造三维动态大屏展示
- 小程序用户头像昵称,微信头像昵称填写onChooseAvatar(2022最佳实践uniapp和原生)
- linux 6.5升级nss,centos6.5 - centos 6.5系统PHP环境下的CURL库的SSL Version默认为NSS,怎么变更为OpenSSL?...
热门文章
- 我的世界药水合成表图Java_我的世界药水合成表图分享 我的世界药水合成配方大全...
- hook(2)Activity启动流程,涨知识
- 冲量在线创始人刘尧:以信创软硬件结合场景为突破口“占山为王”
- HTML标签之文档结构标签
- 1619 例题 Prime Distance(POJ2689 LOJ10197 UVA10140 提高+/省选-) 线性筛 映射关系 0分 筛出区间内质数 超时0分 求任意区间质数的筛子100分
- 除了office,常用的办公软件还有这些
- 【BX学习之生活问题】 福建工商-个体户-工商年报-登录方式
- 语音识别工具箱综述和产品介绍
- git 错误error: failed to push some refs to
- 选股绝招[如何抓住狂涨的黑马]