微信小程序实现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 相关文章推荐
求解开jscript.encode代码的asp函数
Feb 28 Javascript
Js动态添加复选框Checkbox的实例方法
Apr 08 Javascript
js判断滚动条是否已到页面最底部或顶部实例
Nov 20 Javascript
JQuery实现简单的服务器轮询效果实例
Mar 31 Javascript
AngularJS入门教程之路由与多视图详解
Aug 19 Javascript
Angular2从搭建环境到开发步骤详解
Oct 17 Javascript
简单理解js的冒泡排序
Dec 19 Javascript
详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现
Mar 11 Javascript
JavaScript执行环境及作用域链实例分析
Aug 01 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
Feb 19 jQuery
javascript实现前端input密码输入强度验证
Jun 24 Javascript
ajax jquery实现页面某一个div的刷新效果
Mar 04 jQuery
基于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
PHP中的错误处理、异常处理机制分析
2012/05/07 PHP
php基于curl主动推送最新内容给百度收录的方法
2016/10/14 PHP
基于laravel-admin 后台 列表标签背景的使用方法
2019/10/03 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
如何学习Javascript入门指导
2013/11/01 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
jQuery使用$.each遍历json数组的简单实现方法
2016/04/18 Javascript
Node.js配合node-http-proxy解决本地开发ajax跨域问题
2016/08/31 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
AngularJS自定义指令实现面包屑功能完整实例
2017/05/17 Javascript
移动前端图片压缩上传的实例
2017/12/06 Javascript
从组件封装看Vue的作用域插槽的实现
2019/02/12 Javascript
js中console在一行内打印字符串和对象的方法
2019/09/10 Javascript
关于layui toolbar和template的结合使用方法
2019/09/19 Javascript
uni-app如何页面传参数的几种方法总结
2020/04/28 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
[01:10:02]IG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python工程师面试题 与Python Web相关
2016/01/14 Python
Python数据结构与算法之完全树与最小堆实例
2017/12/13 Python
对python使用http、https代理的实例讲解
2018/05/07 Python
python读取文本绘制动态速度曲线
2018/06/21 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
Python使用贪婪算法解决问题
2019/10/22 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
Python tkinter之Bind(绑定事件)的使用示例
2021/02/05 Python
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
军训生自我鉴定范文
2013/12/27 职场文书
执法作风整顿剖析材料
2014/10/11 职场文书
2015重阳节敬老活动总结
2015/07/29 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书
gtx1650怎么样 gtx1650显卡相当于什么级别
2022/04/08 数码科技