300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 微信小程序下拉框插件_微信小程序自定义select下拉选项框组件的实现代码_清玖_前端开

微信小程序下拉框插件_微信小程序自定义select下拉选项框组件的实现代码_清玖_前端开

时间:2024-01-20 23:22:58

相关推荐

微信小程序下拉框插件_微信小程序自定义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下拉选项框组件的实现代码_清玖_前端开发者...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。