微信小程序实现image组件图片自适应宽度比例显示的方法


Posted in Javascript onJanuary 16, 2018

本文实例讲述了微信小程序实现image组件图片自适应宽度比例显示的方法。分享给大家供大家参考,具体如下:

一. 了解image组件

微信小程序实现image组件图片自适应宽度比例显示的方法

由于image有默认的固定的宽度和高度,这样我们在做图片自适应的时候,就不好做了。下面就来一起解决下

二. 方法

(一).使用mode:widthFix

widthFix:宽度不变,高度自动变化,保持原图宽高比不变。
首先我们先设置image的mode为widthFix,然后给图片加一个固定rpx的宽度,比如:730rpx。

这样图片也可以自适应了。。因为小程序的rpx本身就是一个自适应显示的单位

(二).使用bindload绑定函数动态自适应。

我们可以给image绑定一个函数,这个函数,如上面的bindload说明一样,我们可以获取到原图的宽度和高度。

然后计算他们的宽高比率。。然后设置一个宽度大小(rpx),最后通过style动态设置image的宽高。代码如下:

1. 编写页面结构index.wxml:

<image src="../uploads/2.jpg" bindload="imageLoad"
style="width:{{imgwidth}}rpx; height:{{imgheight }}rpx;"></image>

2. 设置数据index.js

//获取应用实例
var app = getApp()
Page({
  data: {
    screenWidth: 0,
    screenHeight:0,
    imgwidth:0,
    imgheight:0,
  },
  onLoad: function() {
    var _this = this;
    wx.getSystemInfo({
      success: function(res) {
        _this.setData({
          screenHeight: res.windowHeight,
          screenWidth: res.windowWidth,
        });
      }
    });
  },
  imageLoad: function(e) {
    var _this=this;
    var $width=e.detail.width,  //获取图片真实宽度
      $height=e.detail.height,
      ratio=$width/$height;  //图片的真实宽高比例
    var viewWidth=500,      //设置图片显示宽度,
      viewHeight=500/ratio;  //计算的高度值
    this.setData({
      imgwidth:viewWidth,
      imgheight:viewHeight
    })
  }
})

微信小程序实现image组件图片自适应宽度比例显示的方法

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
实现只能输入数字的input不用replace方法
Sep 12 Javascript
js为空或不是对象问题的快速解决方法
Dec 11 Javascript
js弹窗返回值详解(window.open方式)
Jan 11 Javascript
谷歌浏览器调试JavaScript小技巧
Dec 29 Javascript
js正则匹配出所有图片及图片地址src的方法
Jun 08 Javascript
AngularJS控制器之间的通信方式详解
Nov 03 Javascript
vue iview组件表格 render函数的使用方法详解
Mar 15 Javascript
vue1.0和vue2.0的watch监听事件写法详解
Sep 11 Javascript
微信小程序实现授权登录
May 15 Javascript
js实现图片无缝循环轮播
Oct 28 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
Nov 07 Javascript
vue引用外部JS的两种种方法
Jan 28 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
Jan 16 #Javascript
AngularJS监听ng-repeat渲染完成的两种方法
Jan 16 #Javascript
微信小程序实现流程进度的图样式功能
Jan 16 #Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
Jan 16 #Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
Jan 16 #Javascript
详解layui中的树形关于取值传值问题
Jan 16 #Javascript
基于JavaScript实现抽奖系统
Jan 16 #Javascript
You might like
利用递归把多维数组转为一维数组的函数
2006/10/09 PHP
MYSQL环境变量设置方法
2007/01/15 PHP
php生成N个不重复的随机数实例
2013/11/12 PHP
php switch语句多个值匹配同一代码块的实现
2014/03/03 PHP
php快速排序原理与实现方法分析
2016/05/26 PHP
PHP精确计算功能示例
2016/11/29 PHP
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
jQuery 无限级菜单的简单实例
2014/02/21 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
JQuery中使用on方法绑定hover事件实例
2014/12/09 Javascript
Node.js事件循环(Event Loop)和线程池详解
2015/01/28 Javascript
如何减少浏览器的reflow和repaint
2015/02/26 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
18个非常棒的jQuery代码片段
2015/11/02 Javascript
AngularJS中$watch和$timeout的使用示例
2016/09/20 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
jQuery中 DOM节点操作方法大全
2017/10/12 jQuery
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
Python实现ssh批量登录并执行命令
2016/10/25 Python
Python实现的计数排序算法示例
2017/11/29 Python
基于树莓派的语音对话机器人
2019/06/17 Python
在Python中表示一个对象的方法
2019/06/25 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
基于pandas中expand的作用详解
2019/12/17 Python
pandas的相关系数与协方差实例
2019/12/27 Python
python集成开发环境配置(pycharm)
2020/02/14 Python
Omio法国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/13 全球购物
排查整治工作方案
2014/06/09 职场文书
医学生求职自荐书
2014/06/12 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
工作违纪检讨书范文
2015/01/26 职场文书
小学安全工作总结2015
2015/05/18 职场文书
党纪处分决定书
2015/06/24 职场文书
python中redis包操作数据库的教程
2022/04/19 Python