欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-14 23:16:05
本文实例讲述了微信小程序实现滑动切换自定义页码的方法。分享给大家供大家参考,具体如下: 效果如下: 这里三个图片使用了swiper组件进行轮播,下方的页码数字1、2...

本文实例讲述了微信小程序实现滑动切换自定义页码的方法。分享给大家供大家参考,具体如下:

效果如下:

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

这里三个图片使用了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
 });
 },

希望本文所述对大家微信小程序开发有所帮助。