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


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 相关文章推荐
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
Aug 04 Javascript
jQuery实现数秒后自动提交form的方法
Mar 05 Javascript
DOM操作一些常用的属性汇总
Mar 13 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
Sep 19 Javascript
深入理解js中this的用法
May 28 Javascript
基于JavaScript实现的插入排序算法分析
Apr 14 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
Jul 19 jQuery
jQuery+Cookie实现切换皮肤功能【附源码下载】
Mar 25 jQuery
jQuery中each遍历的三种方法实例分析
Sep 07 jQuery
vue2.0结合Element-ui实战案例
Mar 06 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
May 10 Javascript
JavaScript实现音乐导航效果
Nov 19 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
web方式ftp
2006/10/09 PHP
高性能PHP框架Symfony2经典入门教程
2014/07/08 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
thinkphp命名空间用法实例详解
2015/12/30 PHP
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
jQeury淡入淡出需要注意的问题
2010/09/08 Javascript
原生JavaScript实现合并多个数组示例
2014/09/21 Javascript
Js使用WScript.Shell对象执行.bat文件和cmd命令
2014/12/18 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计
2018/08/31 Javascript
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
jQuery实现的移动端图片缩放功能组件示例
2020/05/01 jQuery
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
python模拟登陆Tom邮箱示例分享
2014/01/13 Python
Python实现批量压缩图片
2018/01/25 Python
python+tkinter实现学生管理系统
2019/08/20 Python
基于Django实现日志记录报错信息
2019/12/17 Python
pytorch 模型的train模式与eval模式实例
2020/02/20 Python
Python列表的深复制和浅复制示例详解
2021/02/12 Python
网页中的电话号码如何实现一键直呼效果_附示例
2016/03/15 HTML / CSS
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
详解Html5页面实现下载文件(apk、txt等)的三种方式
2018/10/22 HTML / CSS
canvas生成带二维码海报的踩坑记录
2019/09/11 HTML / CSS
工程管理专业个人求职信范文
2013/12/07 职场文书
工商管理实习生自我鉴定范文
2013/12/18 职场文书
青年教师典范事迹材料
2014/01/31 职场文书
艺人经纪人岗位职责
2014/04/15 职场文书
奥巴马开学演讲稿
2014/05/15 职场文书
一份教室追逐打闹的检讨书
2014/09/27 职场文书
社团招新宣传语
2015/07/13 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
Python Matplotlib绘制等高线图与渐变色扇形图
2022/04/14 Python