微信小程序实现流程进度的图样式功能


Posted in Javascript onJanuary 16, 2018

最近正在做微信小程序,需要实现一个流程进度的图样式如下面

微信小程序实现流程进度的图样式功能 

需求:

  1. 没完成的灰色小圆点表示
  2. 完成的使用蓝色小圆点设置
  3. 当前状态使用有外圈的小圆点表示

实现起来比较简单,实现思路,使用一个列表实现,列表中的每一个item的样式如下图

微信小程序实现流程进度的图样式功能 

使用win10画板画的不好看

图上的意思就是每个item 前面有一段线条 中间是个圆圈然后后面有一段线条。之所以这样是因为下面的文字需要居中显示在圆圈的下面。如果不需要文字的话可以一个圆圈后面跟一条直线会更简单一点。

按照上面的图片,html布局为下面

<view class='order_process'>
  <view class='process_wrap' wx:for="{{processData}}" wx:key="">
  <view class='process'>
   <view class='process_line' style="background:{{item.start}}"></view>
   <image class='process_icon' src="{{item.icon}}"></image>
   <view class='process_line' style="background:{{item.end}}"></view>
  </view>
  <text class='process_name'>{{item.name}}</text>
  </view>
 </view>

OK 列表肯定需要一个数组啦数组如下面

processData: [{
  name: '提交工单',
  start: '#fff',
  end: '#EFF3F6',
  icon: '../../img/process_1.png'
 },
 {
  name: '已接单',
  start: '#EFF3F6',
  end: '#EFF3F6',
  icon: '../../img/process_1.png'
 },
 {
  name: '开始维修',
  start: '#EFF3F6',
  end: '#EFF3F6',
  icon: '../../img/process_1.png'
 },
 {
  name: '维修结束',
  start: '#EFF3F6',
  end: '#EFF3F6',
  icon: '../../img/process_1.png'
 },
 {
  name: '已确认',
  start: '#EFF3F6',
  end: '#fff',
  icon: '../../img/process_1.png'
 }],
 },

按照上面的item图片我们会看到直接显示的话两边会多处一条线来怎么去掉这两条线呢,很简单,让父容器的背景颜色跟先的颜色一样就好啦。

把父布局的背景改为白色,然后控制列表中第一个item中的前面的线段的颜色为白色,最后一个item中的后面的线段为白色。这样看起来两边的线段就去掉了

当数据改变的时候,我们只需要改变数组中对象的属性就好了。不如下面的做参考

//进度条的状态
 setPeocessIcon: function () {
 var index = 0//记录状态为1的最后的位置
 var processArr = this.data.processData
 // console.log("progress", this.data.detailData.progress)
 for (var i = 0; i < this.data.detailData.progress.length; i++) {
  var item = this.data.detailData.progress[i]
  processArr[i].name = item.word
  if (item.state == 1) {
  index = i
  processArr[i].icon = "../../img/process_3.png"
  processArr[i].start = "#45B2FE"
  processArr[i].end = "#45B2FE"
  } else {
  processArr[i].icon = "../../img/process_1.png"
  processArr[i].start = "#EFF3F6"
  processArr[i].end = "#EFF3F6"
  }
 }
 processArr[index].icon = "../../img/process_2.png"
 processArr[index].end = "#EFF3F6"
 processArr[0].start = "#fff"
 processArr[this.data.detailData.progress.length - 1].end = "#fff"
 this.setData({
  processData: processArr
 })
 },

上面代码的数据中,使用state代表完成和没完成。我们把完成的设置为蓝色 把没完成的设置为灰色。

使用 index 来记录是不是当前点(当前点就是state表示完成的最后一个)。

最后css中的代码也很简单

.order_process {
 display: flex;
 flex-wrap: nowrap;
 padding: 10rpx 10rpx 20rpx 10rpx;
 background-color: #fff;
}

.process_wrap {
 display: flex;
 flex-direction: column;
 flex: 1;
 align-items: center;
}

.process {
 display: flex;
 align-items: center;
 width: 100%;
}

.process_icon {
 width: 50rpx;
 height: 50rpx;
}

.process_line {
 background: #eff3f6;
 flex: 1;
 height: 5rpx;
}

.process_name {
 font-size: 24rpx;
}

总结

以上所述是小编给大家介绍的微信小程序实现流程进度的图样式功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Extjs列表详细信息窗口新建后自动加载解决方法
Apr 02 Javascript
JavaScript基本编码模式小结
May 23 Javascript
js统计页面的来访次数实现代码
May 09 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
Sep 24 Javascript
原生JS实现图片轮播与淡入效果的简单实例
Aug 21 Javascript
JS对象是否拥有某属性如何判断
Feb 03 Javascript
canvas绘制七巧板
Feb 03 Javascript
浏览器调试动态js脚本的方法(图解)
Jan 19 Javascript
js保留两位小数方法总结
Jan 31 Javascript
Vue动态组件与异步组件实例详解
Feb 23 Javascript
在vue中使用vuex,修改state的值示例
Nov 08 Javascript
vant 解决tab切换插件标题样式自定义的问题
Nov 13 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
Jan 16 #Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
Jan 16 #Javascript
详解layui中的树形关于取值传值问题
Jan 16 #Javascript
基于JavaScript实现抽奖系统
Jan 16 #Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
Jan 16 #Javascript
浅谈vue的props,data,computed变化对组件更新的影响
Jan 16 #Javascript
Parcel 打包示例(React HelloWorld)
Jan 16 #Javascript
You might like
PHP变量内存分配问题记录整理
2013/11/27 PHP
PHP获取数组中重复最多的元素的实现方法
2014/11/11 PHP
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
微信公众平台开发之天气预报功能
2015/08/31 PHP
Laravel中前端js上传图片到七牛云的示例代码
2017/09/04 PHP
动态加载iframe
2006/06/16 Javascript
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
2009/04/24 Javascript
JavaScript 模拟用户单击事件
2009/12/31 Javascript
PHP开发者必须掌握的6个关键字
2014/04/14 Javascript
首页图片漂浮效果示例代码
2014/06/05 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
2015/05/15 Javascript
jquery实现左右滑动菜单效果代码
2015/08/27 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
全面解析Angular中$Apply()及$Digest()的区别
2016/08/04 Javascript
基于Bootstrap的Metronic框架实现页面链接收藏夹功能
2016/08/29 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
JavaScript构造函数原理及实现流程解析
2020/11/19 Javascript
使用FastCGI部署Python的Django应用的教程
2015/07/22 Python
Pandas 数据处理,数据清洗详解
2018/07/10 Python
深入浅析python 协程与go协程的区别
2019/05/09 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
2020/03/03 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
Keras使用ImageNet上预训练的模型方式
2020/05/23 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
详解CSS3阴影 box-shadow的使用和技巧总结
2016/12/03 HTML / CSS
HTML5之消息通知的使用(Web Notification)
2018/10/30 HTML / CSS
水芝澳美国官网:H2O Plus
2016/10/15 全球购物
党风廉设责任书
2014/04/16 职场文书
爱心活动计划书
2014/04/26 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
家长会感言
2015/08/01 职场文书
Redis高级数据类型Hyperloglog、Bitmap的使用
2021/05/24 Redis