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


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 相关文章推荐
js和jquery批量绑定事件传参数一(新猪猪原创)
Jun 23 Javascript
js正则表达式的使用详解
Jul 09 Javascript
javascript实现浏览器窗口传递参数的方法
Sep 03 Javascript
jQuery的基本概念与高级编程
May 14 Javascript
JS在onclientclick里如何控制onclick的执行
May 30 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
Jun 23 Javascript
JS常用算法实现代码
Nov 14 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
Mar 01 Javascript
js精确的加减乘除实例
Nov 14 Javascript
使用typescript开发angular模块并发布npm包
Apr 19 Javascript
关于引入vue.js 文件的知识点总结
Jan 28 Javascript
带你使用webpack快速构建web项目的方法
Nov 12 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
php中base64_decode与base64_encode加密解密函数实例
2014/11/24 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
thinkphp实现分页显示功能
2016/12/03 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
PHP实现的堆排序算法详解
2017/08/17 PHP
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
2007/04/12 Javascript
EXT中xtype的含义分析
2010/01/07 Javascript
javascript中bind函数的作用实例介绍
2014/09/28 Javascript
原生js开发的日历插件
2017/02/04 Javascript
jQuery中将json数据显示到页面表格的方法
2018/05/27 jQuery
vue自定义一个v-model的实现代码
2018/06/21 Javascript
BootStrap table实现表格行拖拽效果
2018/12/01 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
2019/05/06 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
javascript面向对象三大特征之封装实例详解
2019/07/24 Javascript
vue 检测用户上传图片宽高的方法
2020/02/06 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
python实现发送邮件功能代码
2017/12/14 Python
python实现壁纸批量下载代码实例
2018/01/25 Python
Python实现基于PIL和tesseract的验证码识别功能示例
2018/07/11 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
Win 10下Anaconda虚拟环境的教程
2020/05/18 Python
python连接mysql有哪些方法
2020/06/24 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
python SOCKET编程基础入门
2021/02/27 Python
英国第二大营养品供应商:Vitabiotics
2016/10/01 全球购物
加拿大最大的体育用品、鞋类和服装零售商:Sport Chek
2018/11/29 全球购物
安全大检查反思材料
2014/01/31 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
学校春季防火方案
2014/06/08 职场文书
2014年学校领导班子对照检查材料
2014/09/19 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书
python如何利用cv2模块读取显示保存图片
2021/06/04 Python