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


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 相关文章推荐
JavaScript去掉空格的方法集合
Dec 28 Javascript
基于jquery的图片的切换(以数字的形式)
Feb 14 Javascript
JQuery动态创建DOM、表单元素的实现代码
Aug 09 Javascript
基于jquery的一个拖拽到指定区域内的效果
Sep 21 Javascript
javascript实现动态模态绑定grid过程代码
Sep 22 Javascript
javascript中Number对象的toString()方法分析
Dec 20 Javascript
JS数字千分位格式化实现方法总结
Dec 16 Javascript
JS填写银行卡号每隔4位数字加一个空格
Dec 19 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
Sep 15 Javascript
利用Electron简单撸一个Markdown编辑器的方法
Jun 10 Javascript
JS函数进阶之prototy用法实例分析
Jan 15 Javascript
vue 调用 RESTful风格接口操作
Aug 11 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
在线增减.htpasswd内的用户
2006/10/09 PHP
在PHP中实现Javascript的escape()函数代码
2010/08/08 PHP
php visitFile()遍历指定文件夹函数
2010/08/21 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
2017/03/08 PHP
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
jQuery代码优化之基本事件
2011/11/01 Javascript
点击弹出层效果&amp;弹出窗口后网页背景变暗效果的实现代码
2014/02/10 Javascript
JavaScript实现下拉列表框数据增加、删除、上下排序的方法
2015/08/11 Javascript
js实现同一个页面,多个enter事件绑定的示例
2018/10/10 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
js tab栏切换代码实例解析
2019/09/03 Javascript
Vue使用Three.js加载glTF模型的方法详解
2020/06/14 Javascript
Vue自定义组件双向绑定实现原理及方法详解
2020/09/03 Javascript
JS画布动态实现黑客帝国背景效果
2020/11/08 Javascript
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
Python 变量类型及命名规则介绍
2013/06/08 Python
Django利用cookie保存用户登录信息的简单实现方法
2019/05/27 Python
Pytorch训练过程出现nan的解决方式
2020/01/02 Python
Python底层封装实现方法详解
2020/01/22 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
Python3自动生成MySQL数据字典的markdown文本的实现
2020/05/07 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
python实现猜拳游戏项目
2020/11/30 Python
详解Python遍历列表时删除元素的正确做法
2021/01/07 Python
css3 flex实现div内容水平垂直居中的几种方法
2020/03/27 HTML / CSS
详解canvas多边形(蜘蛛图)的画法示例
2018/01/29 HTML / CSS
你对IPv6了解程度
2016/02/09 面试题
高二地理教学反思
2014/01/24 职场文书
事务机电主管工作职责
2014/02/25 职场文书
股权转让意向书
2014/04/01 职场文书
2014年督导工作总结
2014/11/19 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android