写小程序时候,经常遇到使用下拉框选项,不过每次都手写很麻烦,所有我就发一个例子吧,因为我包在其他模块中,所有样式不知道有没有复制全,大家见谅!
·
每一个值的高度等你们可以随意设置,看个人喜好。
这个原理很简单,首先准备一些标签,准备一张图片(展开与折叠用),数据绑定就不说了。
设置变量:selectShow, 控制下拉框列表是否显示隐藏,我设置的是高度,显示就设置高度,不显示就设置为0; index,设置显示第几个数据,默认可以设置为0,根据需求; selectData,你要选择的数据组[];
当点击三角时候,设置下拉框option选项显示(高度)。当点击选项值的时候,设置全局变量的下标值,标签中会根据下标在数组中选中,绑定数据显示, 然后设置下拉框option选项不显示(高度0)。
option总高度设置,根据你有多少选项以及selectShow值是否显示,我设置的是小于5个时候默认高度325rpx,超过五个时候,选项组length 每一个50rpx,
height:{{selectShow?(selectData.length>5?325:selectData.length 50):0}}rpx
这个是写的一个样式,我的图片是倒三角,当展开时候,添加一个样式,rotate180度。
class='select_img {{selectShow&&"select_img_rotate"}}' src='../../images/b2.png'
这个是我的选项内容是一组数组,所有我循环出来,顺便绑定一个数据到标签中data-index,也就是这个值在数组中的下标,点击时候获取方便用。然后添加一个事件catchtap='optionTap'。
wx:for='{{selectData}}' wx:key='this' data-index='{{index}}' catchtap='optionTap'
wxss样式:
不解释,,看设计需求写样式。不过大多通用。
写程序时候,很多地方会用到时间选项,送大家一个函数。获取一天时间分割数组。["00:00","00:05","00:10"....]参数minute ,设置隔几分钟分割。时间格式你们可以自己改。
简单总结一下微信动画的实现及执行步骤。
实现方式官方文档是这样说的:
①创建一个动画实例 animation。
②调用实例的方法来描述动画。
③最后通过动画实例的 export 方法导出动画数据传递给组件的 animation 属性 ...
注意:
前两步是定义一个动画并设置都要干什么,然后把这个设置好的“规则”扔给界面上的某个元素,让它按照这个规则执行。
当然如果有多个元素的animation="{{ani}}",也都会执行这个动画规则。
简单介绍一下例子中的几个参数和方法(其他的详见官方文档):
首先需要定义一套关键帧,关键帧的定义方式比较特殊,它使用了关键字@keyframes来定义动画。这里可以用from{}to{}或者用百分比充当时间点。具体格式为:
然后,在需要设置动画的相应的标签里,调用动画就可以了
比如需要给div添加动画效果:
div{
animation:1s 2s 动画名称 运动方式 动画执行的次数
}
详细分析:
首先 wxml 中 pupContent 初始化信息为高度为0 display: 为 noneclick 为 false
, click 这个来判断 display: 为 block 还是为 none (即: block 为换行显示, none 为不显示,把视图隐藏了) option 用来判断是否调用打开的动画,或者关闭的动画
第一次点击 click 变为 true option 变为 true 这时候 pupContent 的 display: 为 block 高度由动画变为 800rpx
第二次点击阴影部分 首先设置了 option 为 false option 为 false 的话先走的动画是 pupContent 由 800 的高度变为 0 .然后在设置click为false就隐藏掉了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)