微信小程序下拉框插件_微信小程序自定义select下拉选项框组件的实现代码_清玖_前端开发者...
知识点:组件,animation,获取当前点击元素的索引与内容
微信小程序中没有select下拉选项框,所以只有自定义。自定义的话,可以选择模板的方式,也可以选择组件的方式来创建。
这次我选择了组件,这样只需引入组件和添加数据,其它的不用管,就能实现多个地方重复使用了。
第一步:创建组件所需的文件
我喜欢把共用的内容都放在和pages文件同级的地方,所以有了下面的目录结构
(1) 先创建一个自定义名字的文件夹,例如我上面的Componet
(2) 再创建一个select文件夹,然后:右键这个文件夹,新建下面的这个Component。然后输入需要创建的名称,我这里为了方便就取了select的名字。然后就会自动创建4个文件,
第二步:开始配置组件
注意:如果通过第一步创建的可直接跳过第二步。
(1) 通过第一步创建的组件的文件夹中,已经自动配置好了。只需在引入组件的时候,在引入组件的页面的json文件中配置组件的名称和组件的位置。
(2) 如果自己手动创建组件的
Component({
properties: {
// 这里定义了innerText属性,属性值可以在组件使用时指定
innerText: {
type: String,
value: 'default value',
}
},
data: {
// 这里是一些组件内部数据
someData: {}
},
methods: {
// 这里是一个自定义方法
customMethod: function(){}
}
})
第三步:自定义组件样式及
注意:这里可以在 app.json 的 pages 中把组件所在的页面放到第一位,这样就能在组件的页面编写代码了,比如我上面的目录结构:就需要写成 “Componet/select/select”, 后面再是其它的页面。这样方便得多。
1. 组件的wxml
{{nowText}}
{{item.text}}
(1) animation=”{{animationData}}” 这个是下箭头的动画效果
(2) data-index=”{{index}}” 这个是当前元素被点击时的索引
(3) selectToggle是模仿下拉选项框隐藏和显示的事件。
(4) setText是模仿下拉选项框选择子项之后,设置内容的事件。
(5) selectShow是表示option选项显示与否
2. 组件的wxss
.com-selectBox{
width: 200px;
}
.com-sContent{
border: 1px solid #e2e2e2;
background: white;
font-size: 16px;
position: relative;
height: 30px;
line-height: 30px;
}
.com-sImg{
position: absolute;
right: 10px;
top: 11px;
width: 16px;
height: 9px;
transition: all .3s ease;
}
.com-sTxt{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
padding:0 20px 0 6px;
font-size: 14px;
}
.com-sList{
background: white;
width: inherit;
position: absolute;
border: 1px solid #e2e2e2;
border-top: none;
box-sizing: border-box;
z-index: 3;
max-height: 120px;
overflow: auto;
}
.com-sItem{
height: 30px;
line-height: 30px;
border-top: 1px solid #e2e2e2;
padding: 0 6px;
text-align: left;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 14px;
}
.com-sItem:first-child{
border-top: none;
}
3. 组件的
// Componet/Componet.
(1) 组件的 properties
(2) 组件的 data 和普通页面的data一样,是组件的内部数据,和 properties 一同用于组件的模版渲染。
(3) 组件的 method 是专门用于 事件响应函数 和 任意的自定义方法。在这里面获取数据有两种方法:一种是获取data里的数据: this.data.属性名;一种是获取 properties 中的属性值: this.properties.属性名
(4) 创建animation动画,作用在通过 true 和 false 切换显示状态的内容上没有过渡、没有过渡、没有过渡。
第四步:引入组件,传入组件所需数据
1. 引入前,需要在引入组件的页面的json文件中配置,比如我要在 index.wxml 中引入,那么在 index.json 中我就需要配置:
"usingComponents": {
"Select": "/Componet/select/select"
}
(1) Select 是你定义的组件的名称,后面的是组件所在的位置。 / 单斜杠表示根目录,是绝对路径。
(2) 如果出现下面这种说没找到路径的,一定是自己填写的路径不对,认真查找。
2. 配置好后,就可以引入组件。
(1) prop-array 是我自定义的属性名,这个是和组件所在的
3. 最后就是传入数据了。在引入组件的js的data中,添加:
selectArray: [{
"id": "10",
"text": "会计类"
}, {
"id": "21",
"text": "工程类"
}]
最终结果:
如果引入两个相同的组件,传入的数据也相同:
总结
以上所述是小编给大家介绍的微信小程序自定义select下拉选项框组件的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对前端开发者网站的支持!
微信小程序下拉框插件_微信小程序自定义select下拉选项框组件的实现代码_清玖_前端开发者...相关推荐
- html下拉选择框箭头改为年,CSS自定义select下拉选择框的样式(不用其他标签模拟)...
今天群里有人问到怎么自定义select下拉选择框的样式,于是群里就展开了激烈的讨论,刚开始一直就是考虑怎样使用纯CSS实现,把浏览器默认的样式覆盖掉,但最后均因兼容问题处理不好而失败告终,最后的解决方 ...
- 微信小程序自定义select下拉选择组件
微信小程序自定义select下拉选择组件 微信小程序原生开发中,常用到的是从底部弹起的滚动选择器(picker),而有些项目需要用到下拉选择,话不多说,下面就可以把下拉选择封装成一个自定义组件: 1. ...
- 自定义html下拉选择框,CSS自定义select下拉选择框的样式(不用其他标签模拟)
今天群里有人问到怎么自定义select下拉选择框的样式,于是群里就展开了激烈的讨论,刚开始一直就是考虑怎样使用纯CSS实现,把浏览器默认的样式覆盖掉,但最后均因兼容问题处理不好而失败告终,最后的解决方 ...
- CSS设置下划线对齐方式,如何巧妙利用CSS自定义网页下划线样式
如何巧妙利用CSS自定义网页下划线样式 CSS为网页设计者们提供了丰富而灵活的页面元素表现形式的控制手段.但是,或许你可能注意到了,对于下划线,CSS提供的可选操作却不是很多.一般情况下,人们看到的下 ...
- iview select选中值取值_完美解决iview 的select下拉框选项错位的问题
在使用iview的过程中,我遇到这样一个问题,在Model中使用select下拉框组件.但是当弹出框超过一屏需要滚动时,select的下拉选项会出现错位(下图1为正常,图2为滚动后,下拉选项错位.) ...
- iview select 怎么清空_如何解决iview 的select下拉框选项错位的问题,具体操作如下...
下面我就为大家分享一篇完美解决iview 的select下拉框选项错位的问题,具有很好的参考价值,希望对大家有所帮助. 在使用iview的过程中,我遇到这样一个问题,在Model中使用select下拉 ...
- 自定义Select下拉框
背景 经常写Web页面的同学可能会碰到如下的诉求: 新增一个下拉框 要求做的好看一点(鼠标放上去的颜色与原生Select不同,Select背景色也要有所变化) 下拉框中的元素需要分组,分组以后最好还能 ...
- html 下拉框 设置默认值,如何设置HTML select下拉框的默认值?
想要设置HTML select下拉框的默认值,可以在所需选项上使用"selected"属性来设置select元素的默认值,这是一个布尔属性.默认情况下,具有"select ...
- php 获取下拉框选中的文本,jQuery如何获取select选择的文本与值?(代码示例)...
本篇文章给大家带来的内容是关于jQuery如何获取select选择的文本与值,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 获取select : 获取select 选中的 text ...
最新文章
- 魔兽世界10月15日服务器维护,《魔兽世界》怀旧服将于10月15日开放新服务器
- 注意Hibernate4在开发当中的一些改变
- ShopEx customSchema 定制可以根据客户的需求对网站进行相应功能的添加修改或者删除
- 使用ADF BC管理保存点
- 应用程序池优化配置方案(IIS7、IIS7.5)
- shell不允许输入空字符_shell脚本编程之控制脚本
- matlab里面的if跟几个end,在编程中写两个end if 是什么意思
- 沈伟华:图神经网络的三连问
- Glomosim安装和ParseC的使用等相关链接
- 博客营销为何这么神奇而不被淘汰的
- 虚拟打印机 服务器,cimfax64位系统虚拟打印机安装.pdf
- python优化网站_利用python做seo优化
- python numpy 函数_Python 入门教程:关于 numpy 窗函数 Blackman
- Bootstrap 3 如何设置图片居中对齐
- Formality Error/Debug
- php notice undefined variable,PHP错误提示,Notice: Undefined variable
- SMPL:数据增强之处理pose和3d点
- 以是即便再闲也抽暇伴妻子瞅电瞅、游婆园
- tvs管参数数解读_TVS管的主要参数及选型总结
- k8s登录_用户名密码方式登录Kubernetes-Dashboard
热门文章
- C语言逻辑填空题——审问嫌疑犯
- 二叉树——美国血统(洛谷 P1827)
- java redis db0 db1_SpringBoot-技术专区-Redis同数据源动态切换db
- qt 3d迷宫游戏_《加雷利亚的地下迷宫与魔女的旅团》最新情报公布
- Oracle 数据库自动诊断库 ADR(Automatic Diagnostic Repository)简介
- 下载丨DataGuard环境搭建详细步骤
- 第三方测评:GaussDB(for Redis)稳定性与扩容表现
- 鸿蒙轻内核源码分析:异常钩子模块系统中断异常,如何转储异常信息
- 华为云GuassDB(for Redis)发布全新版本推出:Lua脚本和SSL连接加密
- 华为云数据库亮相下一代数据技术发展论坛,助力“数字一带一路”