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


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 相关文章推荐
关闭ie窗口清除Session的解决方法
Jan 10 Javascript
jquery实现保存已选用户
Jul 21 Javascript
JavaScript中自定义事件用法分析
Dec 23 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
Jun 26 Javascript
Svg.js实例教程及使用手册详解(一)
May 16 Javascript
微信小程序 倒计时组件实现代码
Oct 24 Javascript
详解vue事件对象、冒泡、阻止默认行为
Mar 20 Javascript
ES6入门教程之Class和Module详解
May 17 Javascript
vue+node+webpack环境搭建教程
Nov 05 Javascript
深入解析vue 源码目录及构建过程分析
Apr 24 Javascript
手把手教您实现react异步加载高阶组件
Apr 07 Javascript
原生JS实现汇率转换功能代码实例
May 13 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
通过ICQ网关发送手机短信的PHP源程序
2006/10/09 PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
Laravel5中contracts详解
2015/03/02 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
jQuery之浮动窗口实现代码(两种方法)
2010/09/08 Javascript
jQuery新闻滚动插件 jquery.roller.js
2011/06/27 Javascript
jQuery的.live()和.die() 使用介绍
2011/09/10 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
JS 修改URL参数(实现代码)
2013/07/08 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
使用nodejs开发cli项目实例
2015/06/03 NodeJs
jquery选择器简述
2015/08/31 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
基于JavaScript操作DOM常用的API小结
2015/12/01 Javascript
javascript 判断用户有没有操作页面
2017/10/17 Javascript
angular动态表单制作
2018/02/23 Javascript
使用node打造自己的命令行工具方法教程
2018/03/26 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
2019/11/01 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
python实现ipsec开权限实例
2014/11/11 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
Eclipse配置python默认头过程图解
2020/04/26 Python
德国自行车商店:Tretwerk
2019/06/21 全球购物
女娲补天教学反思
2014/02/05 职场文书
打架检讨书2000字
2014/02/22 职场文书
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
后勤主管岗位职责
2014/03/01 职场文书
汉语专业毕业生自荐信
2014/07/06 职场文书
2015教师年度考核评语
2015/03/25 职场文书
初二物理教学反思
2016/02/19 职场文书
2016年社区综治宣传月活动总结
2016/03/16 职场文书