微信小程序swiper实现层叠轮播图

这篇具有很好参考价值的文章主要介绍了微信小程序swiper实现层叠轮播图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在微信小程序中,需要实现展示5个,横向层叠的轮播图效果,轮播图由中间到2侧的依次缩小.如下图微信小程序swiper实现层叠轮播图,微信小程序
使用原生小程序进行开发,没有使用Skyline模式,所以layout-type配置项也无效。所以基于swiper组件进行调整。
主要思路就是设置不同的样式,根据当前激活的项,来动态切换样式。
需要注意的是,下文激活的项指的是中间最大的一项,而不是swiper激活的最左侧的一项

1. swiper-item

由于有层叠效果,所以要给不同的swiper-item元素添加上不同的zindex层级。而swiper-item元素自带绝对定位。
微信小程序swiper实现层叠轮播图,微信小程序
根据层叠数量决定需要加几个层级。当有5个时,只要给激活的中间项加上最高的层级,左右2侧加上低一层级。

2. item

不同层级的swiper-item中的item对应有不同的样式,根据所在的不同层级,需要给对应的item添加上具体的效果样式。
此效果需要给不同的item添加缩放和左右偏移样式

3.动态切换

在轮播图的切换中,需要给各个swiper-item动态切换样式。
我实现的方式是在swiper的bindchange方法中改变激活项的序号,编写wxs方法,将当前激活序号和此项序号传入方法进行判断,返回不同的类,wxml动态渲染不同的类。
同时轮播图一般需要循环无限滚动,所以也需要加上轮播图项的个数。

<swiper class="swiperedu" display-multiple-items="5"  circular="{{true}}" bindchange="swiperChange" autoplay="{{true}}">
	<swiper-item wx:for="{{list}}" wx:key="{{item}}" class="{{transform.classindex(index,nowIdx,listlen)}}">
    <view class='{{transform.classtype(index,nowIdx,listlen)}}'></view>
	</swiper-item>
</swiper>

classindex方法动态的判断swiper-item的层级,classtype方法动态判断item的样式。

// 判断样式
var classtype = function(index,curindex,length){
  var indexnum = parseInt(index),curindexnum = parseInt(curindex);
  var cha = Math.abs(indexnum-curindexnum);
  //激活项是list最后一项
  if(curindex ==length-1){
  // 首尾衔接,第一项在最后一项右边
    if(index==0){
      return '激活项右边样式类';
    }
  }
  //激活项是list最后一项
  else if(curindex==0){
  // 首尾衔接,最后一项在第一项在左边
    if(index==length-1){
      return '激活项右左边样式类';
    }
  }
  //激活项
  if(cha==0){
    return '激活项样式'
  }
  //激活项右侧
  else if(indexnum-curindexnum==1){
    return '激活项右边样式类';
  }
  //激活项左侧
  else if(indexnum-curindexnum==-1){
    return '激活项左边样式类';
  }
  else {
    return '普通样式'
  }
}
// 判断层级
var classindex = function(index,curindex,length){
  var indexnum = parseInt(index),curindexnum = parseInt(curindex);
  var cha = Math.abs(indexnum-curindexnum);
  //激活swipet-item是list最后一项
  if(curindex ==length-1){
  // 首尾衔接,第一swiper-item在最后一个右边
    if(index==0){
      return 'zindex2';
    }
  }
   //激活swiper-item是list最后一项
  else if(curindex==0){
  // 首尾衔接,最后swiper-item在第一个左边
    if(index==length-1){
      return 'zindex2';
    }
  }
  //激活项,层级最高
  if(cha==0){
    return 'zindex3'
  }
  //左右两侧,层级第2
  else if(cha==1){
    return 'zindex2';
  }
  //普通不加层级
  else {
    return ''
  }
}

轮播图循环变化时,要计算%的序号

    swiperChange(e) {
        this.setData({
            nowIdx: (e.detail.current + 2) % this.data.list.length,
        })
    },

e.detail.current是轮播图的currentIndex,指的是swiper最左侧的swiper,由于效果中激活项是坐起第3项,所以激活的index需要+2;

总结

这个效果的变化是由swiper自动切换,触发bindchange方法推动的。没有显式的声明swiper的current。
对于提供给用户切换箭头方法的层叠轮播图,需要声明swiper的current属性,用户的切换和current切换的事件会相互冲突,那个效果有时间再写吧文章来源地址https://www.toymoban.com/news/detail-821735.html

到了这里,关于微信小程序swiper实现层叠轮播图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序-轮播图的实现

    实现如图所示轮播图,具体编写步骤及原代码请见下方 编写 index.wxml 编写index.wxss 编写 index.js

    2024年02月07日
    浏览(50)
  • 微信小程序02-轮播图实现与图片点击跳转

    在小程序01中,已经学习了如何制作底部导航栏,本节让我们一起学习如何制作轮播图,以及点击轮播图完成页面跳转。 注:(1)前期学习,我这里用的本地的图片,后期的话,会对接后端接口,动态获取数据,前期方便学习,就暂时用的本地图片。(2)关于图片跳转地址

    2024年02月16日
    浏览(87)
  • 微信小程序 轮播图代码

    微信小程序轮播图的代码如下: 首先,在小程序的 wxml 文件中,添加如下代码: 然后,在小程序的 js 文件中,添加如下代码: 这样就可以在小程序中使用轮播图了。 注意: imgUrls 中存储的是图片的 URL 地址,可以将自己的图片地址替换进去。 indicatorDots 表示是否显示面板指

    2024年02月09日
    浏览(39)
  • 微信小程序的轮播图

    当然,我可以为你提供一个简单的微信小程序轮播图的示例代码。以下是一个基本的轮播图组件的实现方式: 1. 在小程序的页面文件中,添加轮播图组件的相关代码:   2. 在页面的脚本文件中,定义轮播图组件的相关属性和方法:   3. 在页面的样式文件中,定义轮播图组件

    2024年04月15日
    浏览(55)
  • 微信小程序九宫格布局,轮播图

    在微信小程序中,可以使用 view 标签来实现九宫格布局。具体步骤如下: 在wxml文件中,使用 lt;view 标签设置一个容器。例如: 使用CSS样式来设置 grid-container 类的样式,使其成为九宫格布局。例如: 在 view 标签中放置具体内容。例如,线上教育小程序的九宫格布局页面代码

    2024年01月16日
    浏览(59)
  • Swiper轮播图后端接口实现

    2024年01月25日
    浏览(50)
  • 微信小程序中实现轮播图效果

    swiper是轮播图的外层容器,所以使用轮播图就必须使用到swiper标签。 存在默认样式: 1 width 100% 2 height 150px 只能放置在swiper组件中。表示每一个轮播项。 编译效果: 当切换机型后,就可以方向,图片的宽高与效果不一样 1.分析和升级版本,解决换机型的宽高问题 ①先找出

    2024年02月11日
    浏览(57)
  • Vue2+swiper基础实现轮播图

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 swiper的基础使用 提示:以下是本篇文章正文内容,下面案例可供参考 Swiper中文网-轮播图幻灯片js插件,H5页面前端开发         注意:我们用的是vue2所以推荐大家下载swiper5版本 示例: 查看安装是否完成

    2024年01月16日
    浏览(78)
  • JS常用插件 Swiper插件 实现轮播图

    Swiper 是一款免费以及轻量级的移动设备触控滑块的js框架 中文官网地址: https://www.swiper.com.cn/ 点击查看 Swiper演示 ,里面的功能和样式十分丰富,根据自己的需求选择 中文教程 中详细介绍了如何使用Swiper API文档 中介绍了各个模块以及参数的详细信息,遇到不明白的参数可以

    2024年02月01日
    浏览(65)
  • 小程序中轮播图u-swiper图片无法显示问题

    问题:uview官网中 指定的图片路径字段为image,完全按照uview写轮播图却无法正常显示。    解决方法:1.把image字段改成url字段 2.给u-swiper加上  keyName=\\\"image\\\" 最后找到了总结原因: npm下载的uview默认是2.0的最新版本,百度上的uview文档默认是1.0的文档,title也是一样的问题,所

    2024年02月11日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包