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


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 相关文章推荐
JavaScript Cookie的读取和写入函数
Dec 08 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
Sep 29 Javascript
js编写trim()函数及正则表达式的运用
Oct 24 Javascript
js全屏显示显示代码的三种方法
Nov 11 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
Aug 18 Javascript
jQuery不兼容input的change事件问题解决过程
Dec 05 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
Jul 13 Javascript
AngularJs 最新验证手机号码的实例,成功测试通过
Nov 26 Javascript
vue将对象新增的属性添加到检测序列的方法
Feb 24 Javascript
微信小程序实现点击按钮后修改颜色
Dec 05 Javascript
基于JavaScript实现大文件上传后端代码实例
Aug 18 Javascript
Jquery $.map使用方法实例详解
Sep 01 jQuery
微信小程序与公众号卡券/会员打通的问题
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
一个程序下载的管理程序(二)
2006/10/09 PHP
提升PHP速度全攻略
2006/10/09 PHP
PHP+DBM的同学录程序(2)
2006/10/09 PHP
php下防止单引号,双引号在接受页面转义的设置方法
2008/09/25 PHP
php 数组的指针操作实现代码
2011/02/08 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
2016/03/01 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
JS原生轮播图的简单实现(推荐)
2017/07/22 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
Vue的双向数据绑定实现原理解析
2020/02/17 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
node脚手架搭建服务器实现token验证的方法
2021/01/20 Javascript
[40:03]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#1EHOME VS Archon
2016/03/02 DOTA
python模拟新浪微博登陆功能(新浪微博爬虫)
2013/12/24 Python
windows及linux环境下永久修改pip镜像源的方法
2016/11/28 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
python自动生成证件号的方法示例
2021/01/14 Python
英国综合网上购物商城:The Hut
2018/07/03 全球购物
人力资源专员自我评价怎么写
2013/09/19 职场文书
计算机实训报告范文
2014/11/05 职场文书
2015新员工试用期工作总结
2014/12/12 职场文书
大学生青年志愿者活动总结
2015/05/06 职场文书
刑事上诉状(量刑过重)
2015/05/23 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
Python实战之用tkinter库做一个鼠标模拟点击器
2021/04/27 Python
springboot实现string转json json里面带数组
2022/06/16 Java/Android