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


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变量函数浅析
Sep 02 Javascript
jQuery封装的tab选项卡插件分享
Jun 16 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
Dec 18 Javascript
jQuery无刷新上传之uploadify简单代码
Jan 17 Javascript
JavaScript mixin实现多继承的方法详解
Mar 30 Javascript
Vue.js render方法使用详解
Apr 05 Javascript
vue学习笔记之指令v-text &amp;&amp; v-html &amp;&amp; v-bind详解
May 12 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
Aug 10 Javascript
详解vue如何使用rules对表单字段进行校验
Oct 17 Javascript
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
Apr 18 Javascript
layer关闭弹出窗口触发表单提交问题的处理方法
Sep 25 Javascript
element-ui tree结构实现增删改自定义功能代码
Aug 31 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报错configure error Cannot find libmysqlclient under usr的解决方法
2014/06/27 PHP
php检查是否是ajax请求的方法
2015/04/16 PHP
8个必备的PHP功能开发
2015/10/02 PHP
Yii数据读取与跳转参数传递用法实例分析
2016/07/12 PHP
php如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
2019/10/11 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
Jquery中Event对象属性小结
2015/02/27 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
vue项目中使用Svg的方法
2018/10/24 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
vue实现直播间点赞飘心效果的示例代码
2019/09/20 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
Vue中keep-alive组件作用详解
2020/02/04 Javascript
python使用pil生成缩略图的方法
2015/03/26 Python
python基于socket实现网络广播的方法
2015/04/29 Python
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
2015/11/07 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
2018/02/13 Python
Python_查看sqlite3表结构,查询语句的示例代码
2019/07/17 Python
Series和DataFrame使用简单入门
2019/11/13 Python
python实现音乐播放器 python实现花框音乐盒子
2020/02/25 Python
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
豆腐の盛田屋官网:日本自然派的豆乳面膜、肥皂、化妆水、乳液等
2016/10/08 全球购物
Herve Leger官网:标志性绷带连衣裙等
2018/12/26 全球购物
大学生自我鉴定范文
2013/12/28 职场文书
《狮子和兔子》教学反思
2014/03/02 职场文书
2014年双拥工作总结
2014/11/21 职场文书
考试没考好检讨书
2015/05/06 职场文书
深入理解MySQL中MVCC与BufferPool缓存机制
2022/05/25 MySQL