美文网首页
微信小程序轮播图高度随着图片大小变化

微信小程序轮播图高度随着图片大小变化

作者: 绿啊绿啊绿刺猬 | 来源:发表于2019-02-18 10:49 被阅读13次

刚开始看到这个需求有点想翻白眼。轮播图大小一样整整齐齐不好么,非要七长八短搞得页面很乱才行么,作什么妖。但是目测我近两年都打不过产品,只好乖乖查文档搬砖。
官网的轮播组件:https://developers.weixin.qq.com/miniprogram/dev/component/swiper.html

实现思路:给图片设置mode='widthFix',固定宽度,保持宽高比,高度自适应。再把swiper组件的高度设为当前显示图片的高度。

image.png

bindchange事件里,current是当前所在滑块的index,source是滑块变更原因(我们这里用不到)。

上代码:
wxml:

<swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}" style='height:{{swiperHeight}}rpx' bindchange="change">
  <swiper-item  wx:for="{{imgUrls}}" wx:key>
    <image src="{{item}}" class="slide-image" width="750"  mode='widthFix'/>
  </swiper-item>
</swiper>

wxss:

image{width:750rpx;height:auto;}

js:

Page({

  /**
   * 页面的初始数据
   */
  data: {
    imgUrls: [
      'https://www.zrwl2018.cn/egoshe-api/rcode/img/qietu/b3.png',
      'https://www.zrwl2018.cn/egoshe-api/rcode/img/qietu/b1.png',
      'https://www.zrwl2018.cn/egoshe-api/rcode/img/qietu/activityCanvasBg.png',
      'https://www.zrwl2018.cn/egoshe-api/rcode/img/qietu/b2.png'
    ],
    autoplay:true,
    duration:1000,
    interval:3000
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var that=this;
    var imgUrls = that.data.imgUrls;

    that.imgH(imgUrls[0])
  },
//图片滑动事件
  change: function (e) {
    console.log(e.detail);
     var that=this;
    var index = e.detail.current;
    console.log(index);
    var imgUrls = that.data.imgUrls;

    that.imgH(imgUrls[index])
  },
//获取图片的高度,把它设置成swiper的高度
  imgH: function (e) {
    var that=this
    var winWid = wx.getSystemInfoSync().windowWidth*2;         //获取当前屏幕的宽度*2
    wx.getImageInfo({//获取图片长宽等信息
      src: e,
      success: function (res) {
        console.log(res.width)
        console.log(res.height)
        var imgw=res.width;
        var imgh = res.height
        var swiperH = winWid * imgh / imgw
        that.setData({
          swiperHeight: swiperH//设置高度
        })
      }
    })
  }
})

相关文章

  • 微信小程序轮播图高度随着图片大小变化

    刚开始看到这个需求有点想翻白眼。轮播图大小一样整整齐齐不好么,非要七长八短搞得页面很乱才行么,作什么妖。但是目测我...

  • 小程序轮播图

    | 微信小程序轮播图实现,实现在首页上轮播图,让效果更好看。查看微信小程序开发文档可知,微信小程序提供swiper...

  • 五分钟掌握微信小程序轮播图

    微信小程序轮播图实现,比Android 轮播图来说,显得轻松多了。微信小程序提供swiper组件,官网api提供的...

  • 微信小程序swiper轮播图高度

    小程序中的轮播图很简单,官方都有例子的,但是唯一的缺陷就是swiper是固定死的150px高度,这样如果传入的图片...

  • 微信小程序轮播图

    微信小程序 swiper组件轮播图 照着开发文档尝试,总是能有所收获.之前做Android开发,做个轮播图并不简单...

  • 微信小程序轮播图高度自适应

    图片自适应在网站上是内置好的,只需要设置宽度即可,但在微信小程序非要做一个封装,高度不是随宽度自适应,真是操蛋,不...

  • 微信小程序实现类3D轮播图

    在写微信小程序时,有写到实现3D轮播图的效果,可以直接使用微信小程序中自带的组件swiper来实现 效果图如下: ...

  • 微信小程序swiper做导航栏时高度自适应问题

    微信小程序中 组件可以实现图片轮播,非常之方便。 其中interval属性是图片轮播时间,duration属性是图...

  • 微信小程序学习-轮播图组件swiper

    轮播图组件swiper 微信小程序提供了滑块视图容器swiper,可以便捷实现轮播图效果。 这个名字和移动端常用的...

  • 微信小程序------轮播图

    swiper 微信小程序实现轮播图,和网站,APP的效果差不多,代码少,效率高。 先来看看效果图: 主要用swip...

网友评论

      本文标题:微信小程序轮播图高度随着图片大小变化

      本文链接:https://www.haomeiwen.com/subject/tyooeqtx.html