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


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 实现表单验证功能代码(简洁)
Jul 03 Javascript
jQuery制作仿腾讯web qq用户体验桌面
Aug 20 Javascript
本人自用的global.js库源码分享
Feb 28 Javascript
基于JavaScript实现熔岩灯效果导航菜单
Jan 04 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
Feb 21 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
Jul 12 Javascript
详谈js原型继承的一些问题
Sep 06 Javascript
Mongoose中document与object的区别示例详解
Sep 18 Javascript
vue基于mint-ui实现城市选择三级联动
Jun 30 Javascript
微信小程序结合Storage实现搜索历史效果
May 18 Javascript
JS实现查找数组中对象的属性值是否存在示例
May 24 Javascript
jquery-ui 进度条功能示例【测试可用】
Jul 25 jQuery
使用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/02/03 PHP
PHP模板引擎Smarty中的保留变量用法分析
2016/04/11 PHP
浅谈PHP的数据库接口和技术
2016/12/09 PHP
PHP登录(ajax提交数据和后台校验)实例分享
2016/12/29 PHP
javascript 获取模态窗口的滚动位置代码
2013/08/06 Javascript
node.js中的path.normalize方法使用说明
2014/12/08 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
jQuery弹出层后禁用底部滚动条(移动端关闭回到原位置)
2016/08/29 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
详解js的异步编程技术的方法
2017/02/09 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
详解Vue用axios发送post请求自动set cookie
2017/05/10 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
form表单序列化详解(推荐)
2017/08/15 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
Javascript 之封装(Package)
2018/09/14 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
python连接mysql数据库示例(做增删改操作)
2013/12/31 Python
九步学会Python装饰器
2015/05/09 Python
Python中urllib+urllib2+cookielib模块编写爬虫实战
2016/01/20 Python
python 默认参数问题的陷阱
2016/02/29 Python
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
一个基于flask的web应用诞生 flask和mysql相连(4)
2017/04/11 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
2019/06/04 Python
python 删除系统中的文件(按时间,大小,扩展名)
2020/11/19 Python
HTML5的文档结构和新增标签完全解析
2017/04/21 HTML / CSS
丝芙兰新加坡官网:Sephora新加坡
2018/12/04 全球购物
新闻学专业个人求职信写作
2014/02/04 职场文书
天鹅的故事教学反思
2014/02/04 职场文书
高中生毕业评语
2014/12/30 职场文书
老公保证书
2015/01/17 职场文书
2015年班组建设工作总结
2015/05/13 职场文书
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏