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


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 相关文章推荐
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
Nov 30 Javascript
使用jquery动态加载javascript以减少服务器压力
Oct 29 Javascript
JavaScript转换农历类实现及调用方法
Jan 27 Javascript
jQuery判断密码强度实现思路及代码
Apr 24 Javascript
JS鼠标滑过图片时切换图片实现思路
Sep 12 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
Nov 30 Javascript
jQuery代码实现对话框右上角菜单带关闭×
May 03 Javascript
30分钟快速掌握Bootstrap框架
May 24 Javascript
jquery实现tab键进行选择后enter键触发click行为
Mar 29 jQuery
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
May 25 Javascript
Vue集成Iframe页面的方法示例
Dec 12 Javascript
Vue Render函数创建DOM节点代码实例
Jul 08 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在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
CodeIgniter基本配置详细介绍
2013/11/12 PHP
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
PHP实现简单的新闻发布系统实例
2015/07/28 PHP
php自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
Zend Framework实现多文件上传功能实例
2016/03/21 PHP
PHP实现统计所有字符在字符串中出现次数的方法
2017/10/17 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
php输出形式实例整理
2020/05/05 PHP
JSON 入门指南 想了解json的朋友可以看下
2009/08/26 Javascript
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
2016/05/18 Javascript
微信小程序 详解下拉加载与上拉刷新实现方法
2017/01/13 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
javascript实现blob加密视频源地址的方法
2019/08/08 Javascript
JS实现公告上线滚动效果
2021/01/10 Javascript
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:01:36]Optic vs paiN 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python通过wxPython打开一个音频文件并播放的方法
2015/03/25 Python
python实现音乐下载器
2018/04/15 Python
Python 面试中 8 个必考问题
2018/11/16 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
2020/04/22 Python
解决PDF 转图片时丢文字的一种可能方式
2021/03/04 Python
数控技术应届生求职信
2013/11/13 职场文书
大学毕业感言50字
2014/02/07 职场文书
小学生志愿者活动方案
2014/08/23 职场文书
放飞理想演讲稿
2014/09/09 职场文书
领导班子整改方案
2014/10/25 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏