评论

微信小程序-图片宽高自适应设置

微信小程序-图片宽高自适应设置,让图片自己拉伸宽高比

微信小程序中,有很做组件都是有默认宽高的,比如,image组件默认宽度320px、⾼度240px,这些默认设置常常会对我们的页面布局造成影响     

         <!-- mode="widthFix"  让图片占满宽度,等比例缩放高度 -->
          <image  src="xxxx" mode="widthFix"></image>

        所以,在使用image标签的时候,最常用的方法就是设置其 mode,例如用widthFix,实现图片占满宽度,同时按照宽度来拉伸图片高度,这个mode是最常用的image模式。

有时候需要根据图片的宽高来计算出image标签的高度,这就需要用到一个公式了(目的是为了让展示图片根据原图进行等比例的缩放)

而且,容器.width基本都会设置为100%(100vw),再加上能查看到图片的宽高,就可以根据下面的公式计算出应该设置的容器的高度,进而展现出最完整的图片 

例如:设置容器的高度就能在wxss样式中通过 【  calc 】  来计算出了

 这样展示出来的图片就是按照原图的比例缩放的,不会造成超出或者拉伸。

点赞 0
收藏
评论

2 个评论

  • 光光
    光光
    2023-10-17

    没那么复杂,设置image组件等比缩,然后只需要控制父级宽度就行了

    2023-10-17
    赞同 2
    回复 4
    • CJ
      CJ
      2023-10-17
      嗯嗯,是的,这里只是记录一下另一种用css的calc来实现的方式,哈哈
      2023-10-17
      回复
    • Arosy
      Arosy
      06-06
      大佬可以给个例子吗
      06-06
      回复
    • 老谢
      老谢
      08-23
      大佬,我也希望能一键设置,怎么做啊?目前网上能查到的方法都和楼主的类似,你是怎么做到通过设置就能等比缩放图片的?诚心求教!!!
      08-23
      回复
    • 光光
      光光
      10-16回复老谢
      看需求了,有的等比缩,或者裁剪,都有可以
      10-16
      回复
  • 正青春
    正青春
    2023-10-17

    imgH: function (e) {

        var winWid = wx.getSystemInfoSync().windowWidth; //获取当前屏幕的宽度

        var imgh = e.detail.height; //图片高度

        var imgw = e.detail.width;

        var swiperH = winWid * imgh / imgw + "px"

        this.setData({

          height: swiperH //设置高度

        })

      },


    2023-10-17
    赞同 1
    回复
登录 后发表内容