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


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 相关文章推荐
由document.body和document.documentElement想到的
Apr 13 Javascript
JavaScript中join()方法的使用简介
Jun 09 Javascript
浅谈js基本数据类型和typeof
Aug 09 Javascript
原生js实现验证码功能
Mar 16 Javascript
详解Vue中localstorage和sessionstorage的使用
Dec 22 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
Feb 22 Javascript
Vue Router的懒加载路径的解决方法
Jun 21 Javascript
js+SVG实现动态时钟效果
Jul 14 Javascript
React SSR样式及SEO的实践
Oct 22 Javascript
vue+Element实现搜索关键字高亮功能
May 28 Javascript
layui的布局和表格的渲染以及动态生成表格的方法
Sep 18 Javascript
JS JQuery获取data-*属性值方法解析
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
php压缩和解压缩字符串的方法
2015/03/14 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
mouse_on_title.js
2006/08/25 Javascript
一些常用的Javascript函数
2006/12/22 Javascript
如何用js控制frame的隐藏或显示的解决办法
2013/03/20 Javascript
AngularJS 实现按需异步加载实例代码
2015/10/18 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
JavaScript ES6中export、import与export default的用法和区别
2017/03/14 Javascript
vue中使用localstorage来存储页面信息
2017/11/04 Javascript
JavaScript中var、let、const区别浅析
2018/06/24 Javascript
15分钟学会vue项目改造成SSR(小白教程)
2019/12/17 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
JavaScript中交换值的10种方法总结
2020/08/18 Javascript
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
python 中文字符串的处理实现代码
2009/10/25 Python
Python生成随机密码
2015/03/10 Python
常用python编程模板汇总
2016/02/12 Python
python socket多线程通讯实例分析(聊天室)
2016/04/06 Python
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
python logging模块书写日志以及日志分割详解
2019/07/22 Python
python中append实例用法总结
2019/07/30 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
2019/08/17 Python
解决Django layui {{}}冲突的问题
2019/08/29 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
2020/06/02 Python
CSS3中利用animation属性创建雪花飘落特效
2014/05/14 HTML / CSS
应届生高等护理求职信
2013/10/12 职场文书
教师党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年关工委工作总结
2014/11/17 职场文书
市场营销计划书
2015/01/17 职场文书
Python django中如何使用restful框架
2021/06/23 Python
vue修饰符.capture和.self的区别
2022/04/22 Vue.js
Python 读取千万级数据自动写入 MySQL 数据库
2022/06/28 Python
MySQL池化框架学习接池自定义
2022/07/23 MySQL
python中validators库的使用方法详解
2022/09/23 Python