小程序的image怎么自适应大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序的image怎么自适应大小相关的知识,希望对你有一定的参考价值。

wxml部分:
<image src="../images/xwbanner.png" mode="widthFix" bindload="imageLoad" style="width: images[index].width rpx; height: images[index].height rpx;" ></image>
wxss部分:
image
width:100%;


js部分:
Page(

data:
images:
,
imageLoad: function(e)
var $width=e.detail.width, //获取图片真实宽度
$height=e.detail.height,
ratio=$width/$height; //图片的真实宽高比例
var viewWidth=718, //设置图片显示宽度,左右留有16rpx边距
viewHeight=718/ratio; //计算的高度值
var image=this.data.images;
//将图片的datadata-index作为image对象的key,然后存储图片的宽高值
image[e.target.dataset.index]=
width:viewWidth,
height:viewHeight

this.setData(
images:image
)
,
)
参考技术A 1、src 图片资源地址
2、mode 图片裁剪、缩放的模式
3、binderror 当错误发生时,发布到 AppService 的事件名,事件对象event.detail = errMsg: ‘something wrong’
4、bindload 当图片载入完毕时,发布到 AppService 的事件名,事件对象event.detail = height:’图片高度px’, width:’图片宽度px’
但是image有默认的固定的宽度和高度,这样我们在做图片自适应的时候,就不好做了,特别是我们在做一些商品详情页的时候,需要image自适应屏幕,按原图比例显示。那么如何让image自适应比例显示呢?可以有两种方法:
5、使用mode:widthFix

widthFix:宽度不变,高度自动变化,保持原图宽高比不变。
首先我们先设置image的mode为widthFix,然后给图片加一个固定rpx的宽度,比如:730rpx。
这样图片也可以自适应了。。因为小程序的rpx本身就是一个自适应显示的单位
6、使用bindload绑定函数动态自适应。
我们可以给image绑定一个函数,这个函数,如上面的bindload说明一样,我们可以获取到原图的宽度和高度。
然后计算他们的宽高比率。。然后设置一个宽度大小(rpx),最后通过style动态设置image的宽高。本回答被提问者采纳

以上是关于小程序的image怎么自适应大小的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序 怎么插入图片?image组件的使用教程。

div+css怎么让图片自适应大小时,又不超过它本身最大的时候!

图略小程序怎么上传图片

实现小程序image图片宽度100%高度自适应

android怎么设置自适应大小的背景图片

swiper插件怎么设置响应式高度自适应?