热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信小程序复选框组件替代方案——LXCheckboxGroup组件

2019独角兽企业重金招聘Python工程师标准##LXCheckboxGroup复选框微信小程序官方提供的checkbox有点丑,于是就写了这个。思路

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

##LXCheckboxGroup复选框

微信小程序官方提供的checkbox有点丑,于是就写了这个。

图2-0

思路:

1.checkboxGroup里包着一个checkbox view组件

2.每个checkbox里都包含一个icon与text

3.icon与text点击都会选中,类似于label for的用法,icon样式会切换状态。normal与highlight状态,对应的值赋予icon的type属性。

4.每个checkbox的view都有一个value属性与text属性,分别对应实现值与字面显示,只转递前者作为数据交互。view设定2个属性,data-value与data-text。

5.每次点击都会将checkbox的value值存在到checkedValues数组中

步骤:

  1. 设置布局,使用文字与图标垂直居中,左间距4px,每个独占一行。

布局文件


{{item.text}}

样式表

/*整个复选框组容器*/
.lxCheckboxGroup {width: 80px;height: 26px;margin:20px auto;
}/*单个复选框容器*/
.lxCheckboxGroup view {/*上下间距4px*/margin: 4px auto;
}/*复选框图标*/
.lxCheckboxGroup icon {/*text用block描述,所以要左浮动*/float: left;
}/*文字标签样式*/
.lxCheckboxGroup text{font-size: 14px;/*20px是左按钮的大小,4px是真实的左间距*/margin-left: 24px;/*高亮与icon相等,实现垂直居中*/height: 20px;/*文本垂直居中*/line-height: 20px;/*块布局,否则文本高度无效*/display: block;
}

js代码

Page({data: {items: [{value: 'USA', text: '美国', type: 'circle'},{value: 'CHN', text: '中国', type: 'success_circle'},{value: 'BRA', text: '巴西', type: 'circle'},{value: 'JPN', text: '日本', type: 'circle'},{value: 'ENG', text: '英国', type: 'circle'},{value: 'TUR', text: '法国', type: 'circle'},]},bindCheckbox: function(e) {//绑定点击事件,将checkbox样式改变为选中与非选中console.log('s' + e.currentTarget.dataset.value);}
})

如图

图2-1

  1. 响应点击事件

2.1 利用e.currentTarget.dataset.index传checkbox的index值,作点选与非点选操作,并将已选的values值单独存到数组checkedValues中,供返回提交等操作。

bindCheckbox: function(e) {/*绑定点击事件,将checkbox样式改变为选中与非选中*///拿到下标值,以在items作遍历指示用var index = parseInt(e.currentTarget.dataset.index);//原始的icon状态var type = this.data.items[index].type;var items = this.data.items;if (type == 'circle') {//未选中时items[index].type = 'success_circle';} else {items[index].type = 'circle';}// 写回经点击修改后的数组this.setData({items: items});// 遍历拿到已经勾选的值var checkedValues = [];for (var i = 0; i

  1. text也需要绑定bindCheckBox事件,产生label for的效果,但还可以更简单的处理,就是把事件绑在容器view上,这样点击更直观。

如下面代码:


{{item.text}}

正文完

源码下载:关注下方的公众号->回复数字1007

对小程序开发有趣的朋友关注公众号: huangxiujie85,QQ群: 581513218,微信: small_application,陆续还将推出更多作品。

公众号


转:https://my.oschina.net/huangxiujie/blog/757198



推荐阅读
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • C++语言入门:数组的基本知识和应用领域
    本文介绍了C++语言的基本知识和应用领域,包括C++语言与Python语言的区别、C++语言的结构化特点、关键字和控制语句的使用、运算符的种类和表达式的灵活性、各种数据类型的运算以及指针概念的引入。同时,还探讨了C++语言在代码效率方面的优势和与汇编语言的比较。对于想要学习C++语言的初学者来说,本文提供了一个简洁而全面的入门指南。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了[从头学数学]中第101节关于比例的相关问题的研究和修炼过程。主要内容包括[机器小伟]和[工程师阿伟]一起研究比例的相关问题,并给出了一个求比例的函数scale的实现。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • 本文介绍了一种图片处理应用,通过固定容器来实现缩略图的功能。该方法可以实现等比例缩略、扩容填充和裁剪等操作。详细的实现步骤和代码示例在正文中给出。 ... [详细]
author-avatar
Phoenix-Valefor
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有