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


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 相关文章推荐
兼容FireFox 的 js 日历 支持时间的获取
Mar 04 Javascript
jquery对表单操作2
Apr 06 Javascript
jquery 提交值不为空的元素示例代码
May 10 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
Jan 13 Javascript
js命名空间写法示例
Dec 18 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
May 05 Javascript
js实现登录框鼠标拖拽效果
Mar 09 Javascript
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
Apr 12 jQuery
Webpack 4.x搭建react开发环境的方法步骤
Aug 15 Javascript
JS实现的合并两个有序链表算法示例
Feb 25 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
Dec 14 Vue.js
Element-ui upload上传文件限制的解决方法
Jan 22 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
Smarty+QUICKFORM小小演示
2007/02/25 PHP
php中判断一个字符串包含另一个字符串的方法
2007/03/19 PHP
php 伪静态之IIS篇
2014/06/02 PHP
PHP生成等比缩略图类和自定义函数分享
2014/06/25 PHP
php生成QRcode实例
2014/09/22 PHP
PHP实现将标点符号正则替换为空格的方法
2017/08/09 PHP
javascript 建设银行登陆键盘
2008/06/10 Javascript
jquery中实现简单的tabs插件功能的代码
2011/03/02 Javascript
JS声明变量背后的编译原理剖析
2012/12/28 Javascript
js中function()使用方法
2013/12/24 Javascript
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
2015/03/04 Javascript
JavaScript获得表单target属性的方法
2015/04/02 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
2020/09/13 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
2016/06/03 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
详解如何实现一个简单的Node.js脚手架
2017/12/04 Javascript
JS简单判断是否在微信浏览器打开的方法示例
2019/01/08 Javascript
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
Python函数中的函数(闭包)用法实例
2016/03/15 Python
python直接访问私有属性的简单方法
2016/07/25 Python
Windows下安装python MySQLdb遇到的问题及解决方法
2017/03/16 Python
Python实现统计文本文件字数的方法
2017/05/05 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
Python3中详解fabfile的编写
2018/06/24 Python
python模块导入的细节详解
2018/12/10 Python
Python tkinter三种布局实例详解
2020/01/06 Python
python中PyQuery库用法分享
2021/01/15 Python
HTML5 解析规则分析
2009/08/14 HTML / CSS
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
2014年廉洁自律承诺书
2014/05/26 职场文书
验房委托书
2014/08/30 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
html5中sharedWorker实现多页面通信的示例代码
2021/05/07 Javascript