微信小程序image图片自适应宽度比例显示的方法
来源:互联网 发布:北京增值税开票软件 编辑:程序博客网 时间:2024/05/22 11:58
我们都知道微信小程序的组件image是用来显示图片的,它有一下几个属性:
1、src 图片资源地址
2、mode 图片裁剪、缩放的模式
3、binderror 当错误发生时,发布到 AppService 的事件名,事件对象event.detail = {errMsg: ‘something wrong’}
4、bindload 当图片载入完毕时,发布到 AppService 的事件名,事件对象event.detail = {height:’图片高度px’, width:’图片宽度px’}
但是image有默认的固定的宽度和高度,这样我们在做图片自适应的时候,就不好做了,特别是我们在做一些商品详情页的时候,需要image自适应屏幕,按原图比例显示。那么如何让image自适应比例显示呢?可以有两种方法:
一、使用mode:widthFix
widthFix:宽度不变,高度自动变化,保持原图宽高比不变。
首先我们先设置image的mode为widthFix,然后给图片加一个固定rpx的宽度,比如:730rpx。
这样图片也可以自适应了。。因为小程序的rpx本身就是一个自适应显示的单位
二、使用bindload绑定函数动态自适应。
我们可以给image绑定一个函数,这个函数,如上面的bindload说明一样,我们可以获取到原图的宽度和高度。
然后计算他们的宽高比率。。然后设置一个宽度大小(rpx),最后通过style动态设置image的宽高。代码如下:
html代码:
<image src="{{ item }}" bindload="imageLoad" data-index="{{ index }}" style="width:{{ images[index].width }}rpx; height:{{ images[index].height }}rpx;"></image>
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 }) }})
最后,我们就可以可以通过images[index].width 和 images[index].height给每一个图片设置宽高了。
以上是自己在玩小程序时,关于image自适应方法的简单记录。。
效果如下图所示:
原文地址:http://www.qianduan8.com/1005.html
- 微信小程序image图片自适应宽度比例显示的方法
- 微信小程序image图片自适应宽度比例显示的方法
- 微信小程序-Image 图片实现宽度100%,高度自适应
- 微信小程序 设置宽度是100%,然后图片能成为正方形的方法。小程序按屏幕比例的正方形
- 动态获取缩放图片的长度、宽度和显示比例
- 等比例显示图片的大小,宽高自适应
- APPCAN页面图片自适应等比例显示
- 微信小程序图片等比例缩放 动态的获取图片的高度和宽度 动态的设置图片的高度和宽度
- ImagView宽度固定,高度根据控件宽度与图片宽度比例进行自适应
- 微信小程序swiper组件实现图片宽度自适应
- 微信小程序swiper组件实现图片宽度自适应
- 微信小程序图片实现宽度100%,高度自适应
- 网页图片宽度和高度自适应的方法汇总
- 【原创】用JavaScript动态获取网页中缩放图片的长度、宽度和显示比例
- 图片等比例自适应
- .net上传图片并按照宽度高度比例缩小显示
- jquery根据图片宽度同比例设置图片高度,图片自适应高度
- 微信小程序开发之图片等比例缩放 获取屏幕尺寸图片尺寸 自适应
- Windows Socket五种I/O模型——代码全攻略
- Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
- MY_swift的泛型协议为什么不用<T>语法
- centos里软硬链接问题
- 极光推送Cordova插件—配置插件到Cordova项目
- 微信小程序image图片自适应宽度比例显示的方法
- 分享6款国内、国外开源PHP轻论坛CMS程序
- spring中scope(作用越)理解
- 机器学习资源和路线图
- 百度地图中,提示java.lang.UnsatisfiedLinkErr:No implementation found for int com.baidu.platform.comjni.map.c
- 3.掀起接口测试的盖头-HTTP初窥(二)
- 文章标题
- Mac显示隐藏文件
- Web前端面试题目记答案汇总