微信小程序实现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 相关文章推荐
基于jquery的一个简单的脚本验证插件
Apr 05 Javascript
关于JAVASCRIPT urldecode URL解码的问题
Jan 08 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
Dec 04 Javascript
jQuery.deferred对象使用详解
Mar 18 Javascript
jQuery日程管理插件fullcalendar使用详解
Jan 07 Javascript
Vue异步组件使用详解
Apr 08 Javascript
提高Node.js性能的应用技巧分享
Aug 10 Javascript
用p5.js制作烟花特效的示例代码
Mar 21 Javascript
总结javascript三元运算符知识点
Sep 28 Javascript
vue打包之后生成一个配置文件修改接口的方法
Dec 09 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
Aug 03 Javascript
JavaScript 原型与原型链详情
Nov 02 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
德生PL990,目前市面上唯一一款便携式插卡蓝牙全波段高性能收音机
2021/03/02 无线电
PHP令牌 Token改进版
2008/07/18 PHP
IStream与TStream之间的相互转换
2008/08/01 PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
PHP 无限分类三种方式 非函数的递归调用!
2011/08/26 PHP
jQuery 白痴级入门教程
2009/11/11 Javascript
Script的加载方法小结
2011/01/12 Javascript
JS检测图片大小的实例
2013/08/21 Javascript
zTree插件之多选下拉菜单实例代码
2013/11/06 Javascript
解析Javascript中难以理解的11个问题
2013/12/09 Javascript
Javascript中各种trim的实现详细解析
2013/12/10 Javascript
浅析JQuery中的html(),text(),val()区别
2014/09/01 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
2015/03/02 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
JavaScript 中对象的深拷贝
2016/12/04 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
一个小时快速搭建微信小程序的方法步骤
2019/04/15 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
2019/08/02 Javascript
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
python实现可变变量名方法详解
2019/07/01 Python
使用python serial 获取所有的串口名称的实例
2019/07/02 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
keras中的卷积层&amp;池化层的用法
2020/05/22 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
详解CSS3的perspective属性设置3D变换距离的方法
2016/05/23 HTML / CSS
清除canvas画布内容(点擦除+线擦除)
2020/08/12 HTML / CSS
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
入党自我评价优缺点
2014/01/25 职场文书
《都江堰》教学反思
2014/02/07 职场文书
司考复习计划
2015/01/19 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
2016年公司新年寄语
2015/08/17 职场文书
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL