微信小程序实现滑动切换自定义页码的方法分析


Posted in Javascript onDecember 29, 2018

本文实例讲述了微信小程序实现滑动切换自定义页码的方法。分享给大家供大家参考,具体如下:

效果如下:

微信小程序实现滑动切换自定义页码的方法分析

这里三个图片使用了swiper组件进行轮播,下方的页码数字1、2、3会随着图片的切换变动位置

在微信小程序中我们是无法操作dom的,那么

var div = document.getElementById('id');
div.setAttribute("class", "className");

这种方式实现。

然后我们可以考虑使用hidden或者wx:if的方式,将三个页码显示的view进行轮流显示/隐藏操作。但是不知道为什么这种方式只支持一次操作

最后,使用了display:none/block来达到影藏/显示状态的切换,这个display是写在wxml文件中的

<view class="bottomView" >
  <view class="bottom1" style="display:{{bottomHidden1}}" >
   <view class="pageCur">
   <text class="textPageCur textFont">{{index+1}}-5</text>    //index是因为上方采用了<block wx:for="{{itemInfor}}" >显示内容,index从0开始计数便是当前下标
   </view>
   <view class="buttomImg">
   <image clss="horImg" mode="top left" src="../img/horizontal.jpg"></image>
   </view>
  </view>
  <view class="bottom2" style="display:{{bottomHidden2}}">
   <view class="pageCur">
   <text class="textPageCur textFont" > {{index+1}}-5</text>
   </view>
   <view class="buttomImg">
    <image clss="horImg" mode="top left" src="../img/horizontal.jpg"></image>
   </view>
  </view>
  <view class="bottom3" style="display:{{bottomHidden3}}">
   <view class="pageCur">
   <text class="textPageCur textFont">{{index+1}}-5</text>
   </view>
   <view class="buttomImg">
    <image clss="horImg" mode="top left" src="../img/horizontal.jpg"></image>
   </view>
   </view>
  </view>

以上这就是页码显示部分,页码的组成包括一个text和一个image(下方白色横线),这个内容嵌套在<swiper-item></swiper-item>

bottomView采用position:fixed的定位方式固定在底部设置高和宽,bottom3、2、1采用position:absolute的方式。需要注意的是,如果在bottomView使用了display:flex,将无法使用position。所以在这一部分未采用flex。但是上面的文字和图片部分采用的是display:flex实现的,这种方式比较简单

在swiper中,绑定了bindchange="swiperChange"方法,用于在页面切换时触发下方页码的变化动作,在js文件中该方法如下:

Page({
 data: {
 bottomHidden1:"block",
 bottomHidden2: "none" ,
 bottomHidden3: "none" ,
 },
 swiperChange:function(event){
 var currentView=event.detail.current;     //此处使用了swiper的bindchange事件带过来的参数current,这个参数从0开始计数,内容为当前页码
 var isHidden1 ="";
 var isHidden2 ="";
 var isHidden3 ="";
 switch (currentView) {
  case 1:
  isHidden1 = "none";
  isHidden2 = "block";
  isHidden3 = "none";
  break;
  case 2:
  isHidden1 = "none";
  isHidden2 = "none";
  isHidden3 = "block" ;
  break;
  case 0:
  isHidden1 = "block";
  isHidden2 = "none";
  isHidden3 = "none";;
  break;
 }
 this.setData({
  bottomHidden1:isHidden1,
  bottomHidden2: isHidden2,
  bottomHidden3: isHidden3
 });
 },

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
splice slice区别
Oct 09 Javascript
asp 取文本框名称代码
Dec 02 Javascript
js保存当前路径(cookies记录)
Dec 14 Javascript
基于jquery实现简单的分页控件
Mar 17 Javascript
利用JQuery直接调用asp.net后台的简单方法
Oct 27 Javascript
inner join 内联与left join 左联的实例代码
Sep 18 Javascript
基于vue的换肤功能的示例代码
Oct 10 Javascript
微信小程序上传图片实例
May 28 Javascript
React注册倒计时功能的实现
Sep 06 Javascript
VUE 自定义组件模板的方法详解
Aug 30 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
May 17 Javascript
vue 项目引入echarts 添加点击事件操作
Sep 09 Javascript
vue实现分页组件
Jun 16 #Javascript
如何用RxJS实现Redux Form
Dec 29 #Javascript
Vue.js结合bootstrap前端实现分页和排序效果
Dec 29 #Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
Dec 29 #jQuery
javascript实现计算指定范围内的质数示例
Dec 29 #Javascript
基于vue.js组件实现分页效果
Dec 29 #Javascript
详解Vue.js v-for不支持IE9的解决方法
Dec 29 #Javascript
You might like
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
2011/07/18 PHP
解析获取优酷视频真实下载地址的PHP源代码
2013/06/26 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
非常重要的php正则表达式详解
2016/01/04 PHP
swoole_process实现进程池的方法示例
2018/10/29 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
JQuery中each()的使用方法说明
2010/08/19 Javascript
鼠标事件延时切换插件
2011/03/12 Javascript
详解强大的jQuery选择器之基本选择器、层次选择器
2012/02/07 Javascript
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
jquery的冒泡事件的阻止与允许(三种实现方法)
2013/02/01 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
2014/05/23 Javascript
node.js中的fs.lchownSync方法使用说明
2014/12/16 Javascript
jQuery对JSON数据进行排序输出的方法
2015/06/24 Javascript
d3.js实现简单的网络拓扑图实例代码
2016/11/06 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
vue-cli扩展多模块打包的示例代码
2018/04/09 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
[04:09]显微镜下的DOTA2第十二期—NaVi美如画的团战
2014/06/23 DOTA
[51:36]EG vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
pygame游戏之旅 游戏中添加显示文字
2018/11/20 Python
pybind11在Windows下的使用教程
2019/07/04 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
消防安全管理制度
2014/02/01 职场文书
体育教学随笔感言
2014/02/24 职场文书
电气工程自动化求职信
2014/03/14 职场文书
2014年党课学习材料
2014/05/11 职场文书
学生退学证明
2015/06/23 职场文书