对于一张网络图片高度太高,而显示不全如何解决?
微信小程序 image api
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
src | String | 图片资源地址 | |
mode | String | 'scaleToFill' | 图片裁剪、缩放的模式 |
binderror | HandleEvent | 当错误发生时,发布到 AppService 的事件名,事件对象 event.detail = {errMsg: 'something wrong'} | |
bindload | HandleEvent | 当图片载入完毕时,发布到 AppService 的事件名,事件对象 event.detail = {height:'图片高度 px', width:'图片宽度 px'} |
注:image 组件默认宽度 300px、高度 225px
mode 有效值:
mode 有 13 种模式,其中 4 种是缩放模式,9 种是裁剪模式。
模式 | 值 | 说明 |
---|---|---|
缩放 | scaleToFill | 不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素 |
缩放 | aspectFit | 保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。 |
缩放 | aspectFill | 保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。 |
缩放 | widthFix | 宽度不变,高度自动变化,保持原图宽高比不变 |
裁剪 | top | 不缩放图片,只显示图片的顶部区域 |
裁剪 | bottom | 不缩放图片,只显示图片的底部区域 |
裁剪 | center | 不缩放图片,只显示图片的中间区域 |
裁剪 | left | 不缩放图片,只显示图片的左边区域 |
裁剪 | right | 不缩放图片,只显示图片的右边区域 |
裁剪 | top left | 不缩放图片,只显示图片的左上边区域 |
裁剪 | top right | 不缩放图片,只显示图片的右上边区域 |
裁剪 | bottom left | 不缩放图片,只显示图片的左下边区域 |
裁剪 | bottom right | 不缩放图片,只显示图片的右下边区域 |
WXML:
<image style="width: {{imageWidth}}px; height: {{imageHeight}}px;" src="{{imgurl}}" mode="aspectFill" bindload="imgload">
</image>
JS:
Page({
data:{
imgurl:'http://hukang02.b0.upaiyun.com/1480321452672.jpg',
imageWidth:0,
imageHeight:0
},
imgload: function(e){
console.log("图片加载完成="+e.detail);
//用来计算高宽
this.setData(wxAutoImageCal(e));
}
})
计算宽高显示:
function wxAutoImageCal(e){
//获取图片的原始长宽
var originalWidth = e.detail.width;
var originalHeight = e.detail.height;
var windowWidth = 0,windowHeight = 0;
var imageWidth= 0,imageHeight= 0;
var results= {};
//获取屏幕信息
wx.getSystemInfo({
success: function(res) {
windowWidth = res.windowWidth;
windowHeight = res.windowHeight;
//判断按照那种方式进行缩放
if(originalWidth > windowWidth){//在图片width大于手机屏幕width时候
imageWidth= windowWidth;
imageHeight= (imageWidth*originalHeight)/originalWidth;
results.imageWidth= imageWidth;
results.imageHeight= imageHeight;
}else{//否则展示原来的数据
results.imageWidth= originalWidth;
results.imageHeight= originalHeight;
}
}
})
return results;
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于