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


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 相关文章推荐
基于MVC3方式实现下拉列表联动(JQuery)
Sep 02 Javascript
javascript跨域的4种方法和原理详解
Apr 08 Javascript
ArtEditor富文本编辑器增加表单提交功能
Apr 18 Javascript
值得分享的轻量级Bootstrap Table表格插件
May 30 Javascript
利用JavaScript实现拖拽改变元素大小
Dec 14 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
Feb 13 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
Dec 25 jQuery
JS设计模式之策略模式概念与用法分析
Feb 05 Javascript
用vue快速开发app的脚手架工具
Jun 11 Javascript
Vue实现todolist删除功能
Jun 26 Javascript
jQuery实现点击滚动到指定元素上的方法分析
Mar 19 jQuery
vue data对象重新赋值无效(未更改)的解决方式
Jul 24 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
PHP实现简单的新闻发布系统实例
2015/07/28 PHP
老生常谈PHP位运算的用途
2017/03/12 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
2020/06/24 PHP
JS获取页面窗口大小的代码解读
2011/12/01 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
2012/06/11 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
2014/03/12 Javascript
JavaScript数组迭代器实例分析
2015/06/09 Javascript
vue中element组件样式修改无效的解决方法
2018/02/03 Javascript
axios 处理 302 状态码的解决方法
2018/04/10 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
Angular8路由守卫原理和使用方法
2019/08/29 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
Python中字符串的格式化方法小结
2016/05/03 Python
python代码实现ID3决策树算法
2017/12/20 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
2018/10/15 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
2019/06/10 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
定制iPhone和Macbook保护壳:Slick Case
2018/11/21 全球购物
在加拿大在线租赁和购买电子游戏:Game Access
2019/09/02 全球购物
城市规划毕业生求职信
2013/10/10 职场文书
路政管理专业个人自荐信范文
2013/11/30 职场文书
初三政治教学反思
2014/01/30 职场文书
简历的自我评价范文
2014/02/04 职场文书
经典的毕业生自荐信范文
2014/04/14 职场文书
2014领导班子四风问题查摆思想汇报
2014/09/13 职场文书
数学教师个人工作总结
2015/02/06 职场文书
2015年护士节活动总结
2015/02/10 职场文书
风雨哈佛路观后感
2015/06/03 职场文书
Django实现在线无水印抖音视频下载(附源码及地址)
2021/05/06 Python
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android