微信小程序实现原生步骤条


Posted in Javascript onJuly 25, 2019

本文实例为大家分享了微信小程序实现原生步骤条的具体代码,供大家参考,具体内容如下

效果

微信小程序实现原生步骤条

(步骤条颜色不对是录制工具的问题)

思路

其实与轮播图类似,使用了两个并排的轮播容器,在滑动监听后,给图片加上移动和缩放动画。

扩展

可以用于标签页的切换。

vue与微信小程序有类似的地方,所以微信小程序做出的效果,原理也可用于vue在网页上的应用。

代码

wxml

<view class='window'>
 <view class='content' bindtouchstart='touchS' bindtouchend='touchE' style='left:{{left}}rpx'>
  <view wx:for="{{list}}">
   <!-- 时间线 -->
   <view class='pot'>
    <view class='{{index == 0?"blank":"line"}}'></view>   
    <view class='circle' style='background:{{show_index == index?"orange":""}}'></view>
    <view class='{{index == length - 1?"blank":"line"}}'></view>
   </view>
   <!-- 图片 -->
   <view class='pic_container'>
    <image class='pic' style='{{show_index != index?"transform:scale(0.5,0.5)":""}}' src="../../images/{{index+1}}.jpg"></image>
   </view>
  </view>
 </view>
</view>

wxss

.window{
 width: 450rpx;
 background-color: #eee;
 padding: 25rpx;
 position: relative;
 overflow: hidden;
 margin: 0 auto;
 border-radius: 20rpx;
}
.content{
 display: flex;
 position: relative;
 transition: all 0.5s;
}
.content>view{
 display: flex;
 flex-direction: column;
 align-items: center;
}
.pot{
 width: 450rpx;
 display: flex;
 align-items: center;
 justify-content: space-between;
}
.circle{
 border-radius: 100%;
 height: 20rpx;
 width: 20rpx;
 border:4rpx solid orange;
}
.line{
 height: 4rpx;
 width: 50%;
 background: orange;
}
.blank{
 height: 4rpx;
 width: 50%;
}
.pic_container{
 width: 450rpx;
 height: 450rpx;
 display: flex;
 justify-content:center;
 align-items: center;
}
.pic{
 width: 400rpx;
 height: 400rpx;
 transition: all 0.5s;
}

js

Page({
 data: {
  list: ['1', '2', '3'],
  left:0,
  show_index:0
 },
 
 onLoad: function () {
  this.setData({
   length:this.data.list.length
  })
 },
 
 touchS:function(e){
  var that = this;
  this.data.start = e.touches[0].pageX;
  this.data.start_left = this.data.left;
 },
 
 touchE:function(e){
  var that = this;
  this.data.end = e.changedTouches[0].pageX;
  var distance = this.data.end - this.data.start;
  //左滑
  if (distance <= -40 && this.data.left > -900) {
   this.setData({
    left: that.data.start_left - 450,
    show_index:++ this.data.show_index
   })
  }
  //不滑
  else if(distance <= 40){
   this.setData({
    left: that.data.start_left,
   })
  }
  //右滑
  else if (distance > 40 && this.data.left < 0) {
   this.setData({
    left: that.data.start_left + 450,
    show_index: --this.data.show_index
   })
  }
 }
 
})

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery textarea的长度进行验证
May 06 Javascript
JS 如果改变span标签的是否隐藏属性
Oct 06 Javascript
js变量以及其作用域详解
Jul 18 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
Dec 29 Javascript
JavaScript中用getDate()方法返回指定日期的教程
Jun 09 Javascript
JavaScript程序开发之JS代码放置的位置
Jan 15 Javascript
对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解
Apr 11 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
Apr 13 Javascript
js原型链与继承解析(初体验)
May 09 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
Oct 31 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
Jul 04 jQuery
Javascript Worker子线程代码实例
Feb 20 Javascript
微信小程序与公众号卡券/会员打通的问题
Jul 25 #Javascript
微信小程序tabBar 返回tabBar不刷新页面
Jul 25 #Javascript
微信小程序与公众号实现数据互通的方法
Jul 25 #Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
Jul 25 #Javascript
微信小程序实现收货地址左滑删除
Nov 18 #Javascript
jquery-ui 进度条功能示例【测试可用】
Jul 25 #jQuery
微信小程序实现左滑动删除效果
Mar 30 #Javascript
You might like
Thinkphp模板中使用自定义函数的方法
2012/09/23 PHP
codeigniter集成ucenter1.6双向通信的解决办法
2014/06/12 PHP
PHP封装的字符串加密解密函数
2015/12/18 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
2019/04/10 PHP
Firefox outerHTML实现代码
2009/06/04 Javascript
JS+CSS实现带小三角指引的滑动门效果
2015/09/22 Javascript
javascript 用函数实现继承详解
2016/05/28 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
整理一些最近经常遇到的前端面试题
2017/04/25 Javascript
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
深入浅析Vue中的 computed 和 watch
2018/06/06 Javascript
详解vue axios用post提交的数据格式
2018/08/07 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
layui下拉框获取下拉值(select)的例子
2019/09/10 Javascript
Vue项目中Api的组织和返回数据处理的操作
2019/11/04 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
Python中字典和JSON互转操作实例
2015/01/19 Python
纯python实现机器学习之kNN算法示例
2018/03/01 Python
Python遍历某目录下的所有文件夹与文件路径
2018/03/15 Python
Python登录注册验证功能实现
2018/06/18 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
Django Form设置文本框为readonly操作
2020/07/03 Python
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
Omio英国:搜索并比较便宜的巴士、火车和飞机
2019/08/27 全球购物
计算机应用职专应届生求职信
2013/11/12 职场文书
便利店投资创业计划书
2014/02/08 职场文书
《猴子种果树》教学反思
2014/04/26 职场文书
专题民主生活会对照检查材料思想汇报
2014/09/29 职场文书
大学生学习新党章思想汇报
2014/10/25 职场文书
2016年助残日旅游活动总结
2016/04/01 职场文书
导游词之扬州大明寺
2019/10/09 职场文书
人民币符号
2022/02/17 杂记
MySQL一劳永逸永久支持输入中文的方法实例
2022/08/05 MySQL