微信小程序实现轮播图根据图片大小自适应高度

上效果图

话不多说——————上代码

首先wxml

<swiper class="con_img"  style="height:{{swiperheight}}px" 	indicator-dots="true" autoplay="true" indicator-active-color="#f8e112" bindchange="changeheight">

<block wx:for="{{swiper_img}}">

<swiper-item>
  
<image src="{{item.img}}"  bindload='goheight' mode="widthFix">

</image>

</swiper-item>

</block>

</swiper>

bindload='goheight'    写goheight函数在加载图片的时候计算出图片的高度

bindchange="changeheight"  写changeheight函数在更换图片时改变swiper的高度

js部分代码


计算图片自适应高度
goheight:function (e) {
    const { height } = this.data;
    var width = wx.getSystemInfoSync().windowWidth
    //获取可使用窗口宽度
    var imgheight = e.detail.height
    //获取图片实际高度
    var imgwidth = e.detail.width
    //获取图片实际宽度
    var he = width * imgheight / imgwidth
    //计算等比swiper高度
    height.push(he)
将计算出来的高度记录在数组height数组中
    this.setData({
      swiperheight:this.data.height[0]
    })
//先执行一次更换swiper高度的代码,因为changeheight函数第一张轮播图出来时不会触发
   
  },


改变swiper高度
  changeheight:function(e){
    this.setData({
      swiperheight:this.data.height[e.detail.current]
取出height中对应的高度,赋值给swiperheight
    })
  },

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦可尤曦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值