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


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 相关文章推荐
jQuery 三击事件实现代码
Sep 11 Javascript
jquery 追加tr和删除tr示例代码
Sep 12 Javascript
文本框水印提示效果的简单实现代码
Feb 22 Javascript
TypeScript 中接口详解
Jun 19 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
Jun 06 Javascript
ajax的分页查询示例(不刷新页面)
Jan 11 Javascript
js, jQuery实现全选、反选功能
Mar 08 Javascript
js实现图片加载淡入淡出效果
Apr 07 Javascript
jQuery实现对网页节点的增删改查功能示例
Sep 18 jQuery
javascript 产生随机数的几种方法总结
Sep 26 Javascript
Vue 实现展开折叠效果的示例代码
Aug 27 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
Nov 09 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
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
php 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
&amp;lt;script defer&amp;gt; defer 是什么意思
2009/05/10 Javascript
jquery 事件执行检测代码
2009/12/09 Javascript
精通JavaScript 纠正 cleanWhitespace函数
2010/03/11 Javascript
javascript学习笔记(五)正则表达式
2011/04/08 Javascript
js弹出层(jQuery插件形式附带reLoad功能)
2013/04/12 Javascript
jquery foreach使用示例
2013/09/12 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
JQuery 使用attr方法实现下拉列表选中
2014/10/13 Javascript
解决js下referer兼容各大浏览器的方法
2014/11/03 Javascript
轻松实现javascript数据双向绑定
2015/11/11 Javascript
Bootstrap CSS组件之按钮组(btn-group)
2016/12/17 Javascript
JS无缝滚动效果实现方法分析
2016/12/21 Javascript
Vue自定义弹窗指令的实现代码
2018/08/13 Javascript
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
在JavaScript中实现链式调用的实现
2019/12/24 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
2020/04/01 jQuery
Vue+Java 通过websocket实现服务器与客户端双向通信操作
2020/09/22 Javascript
编写自定义的Django模板加载器的简单示例
2015/07/21 Python
python脚本监控Tomcat服务器的方法
2018/07/06 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
2019/07/04 Python
django认证系统 Authentication使用详解
2019/07/22 Python
Python Django中间件,中间件函数,全局异常处理操作示例
2019/11/08 Python
python实现按关键字筛选日志文件
2019/12/24 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
Pytorch释放显存占用方式
2020/01/13 Python
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
JVM是一个编译程序还是解释程序
2012/09/11 面试题
仓库管理制度
2014/01/21 职场文书
白血病募捐倡议书
2014/05/14 职场文书
工人先锋号申报材料
2014/12/29 职场文书
2016拓展训练心得体会范文
2016/01/12 职场文书
Jupyter notebook 输出部分显示不全的解决方案
2021/04/24 Python
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle