微信小程序 - image 宽高自适应(图片无法自适应撑开标签)

简介: 微信小程序 - image 宽高自适应(图片无法自适应撑开标签)
  • 微信小程序中的 image 标签跟 html 中的 img 标签还是有些差别的。
  • image 标签有 srcmode 等属性基本够用
  • 但是今天在用的时候发现设置 src 之后,image 在小程序中是默认有宽高的,也就是固定的,去掉宽高之后,也不会像 html 中的 img 标签一样图片内容会撑开标签,这里就需要自己来根据图片的大小进行手动自适应图片宽高了。
  • 使用 bindload 绑定函数动态自适应,我们可以获取到原图的宽度和高度,计算他们的宽高比率,然后设置一个宽度大小(rpx),最后通过 style 动态设置 image 的宽高。
  • 代码如下:
  • .wxml
<image src="./temp.png" style="{{imgStyle}}" bindload="imageLoadSuccess"></image>
  • .js
// 设备像素比可以放到 app 中作为全局属性使用
const app = getApp()
Page({
  data: {
    // 默认图片没有宽高(你可以默认有宽高)
    imgStyle: 'width: 0rpx; height: 0rpx;'
    // 设备像素比,如果不知道获取像素比的可以看看上面那篇文章
    pixelRatio: 2
  },
  // 图片加载完成回调
  imageLoadSuccess (e) {
    // 获取图片信息
    const imgDetail = e.detail
    // 手动设置图片样式宽高
    this.setData({
      // 图片原始宽高度 * pixelRatio
      imgStyle: `width: ${imgDetail.width * this.data.pixelRatio}rpx; height: ${imgDetail.height * this.data.pixelRatio}rpx;`
    })
  }
})
  • 效果比较
  • 上面动态设置宽高之后效果:

  • 原始效果:
<image src="./temp.png"></image

  • 上面动态设置宽高之后效果,同样还可以配合 mode 进行使用
  • 下面这个图宽高都是有最大范围,当超过最大范围值需要显示图片中间部分,默认是填充撑满的,就需要 imagemode 配合:
<image style="{{imgStyle}}" mode="aspectFill" bindload="imageLoadSuccess" src="./temp.png"></image>

相关文章
|
4月前
|
小程序
小程序消除图片下边距的三个方法
小程序消除图片下边距的三个方法
127 69
|
3月前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
1407 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
4月前
|
小程序 容器
微信小程序常用组件的简单使用 view,scroll-view,swiper,swiper-item,text,rich-text,button,image
本文介绍了微信小程序中常用组件的使用方法,包括view、scroll-view、swiper与swiper-item、text与rich-text、button以及image组件。详细解释了各组件的功能、属性以及如何在小程序页面中进行使用。
微信小程序常用组件的简单使用 view,scroll-view,swiper,swiper-item,text,rich-text,button,image
|
3月前
|
算法 小程序 Java
java制作海报三:获取微信二维码详情,并改变大小,合成到海报(另一张图片)上
这篇文章介绍了如何使用Java获取微信小程序的二维码,并将其调整大小后合成到海报(另一张图片)上。
64 0
|
5月前
|
小程序 前端开发
|
5月前
|
运维 小程序 前端开发
小程序开发问题之在小程序中调用my.chooseImage接口让用户选择图片如何解决
小程序开发问题之在小程序中调用my.chooseImage接口让用户选择图片如何解决
|
6月前
|
前端开发 小程序
【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
437 0
|
6月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的图片推荐系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的图片推荐系统附带文章源码部署视频讲解等
62 0
|
8天前
|
移动开发 小程序 前端开发
超详细攻略!uniapp陪玩系统,打包陪玩小程序、H5需要注意什么?
陪玩系统的打包过程涵盖APP、小程序和H5平台。APP打包需使用uni-app开发工具,配置项目信息并选择云打包;小程序打包需在微信公众平台注册账号并提交审核;H5打包则直接通过uni-app生成文件并上传至服务器。各平台需注意权限配置、代码规范及充分测试,确保应用稳定性和兼容性。
|
2月前
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
48 0
在线课堂+工具组件小程序uniapp移动端源码