微信小程序实现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 相关文章推荐
实例:尽可能写友好的Javascript代码
Oct 09 Javascript
jQuery中end()方法用法实例
Jan 08 Javascript
jquery实现的Accordion折叠面板效果代码
Sep 02 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
Sep 28 Javascript
CSS中position属性之fixed实现div居中
Dec 14 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
Jun 06 Javascript
JavaScript事件用法浅析
Oct 31 Javascript
js原生代码实现轮播图的实例讲解
Jul 28 Javascript
vue-cli扩展多模块打包的示例代码
Apr 09 Javascript
关于vue属性使用和不使用冒号的区别说明
Oct 22 Javascript
Vue 组件注册全解析
Dec 17 Vue.js
JS实现选项卡插件的两种写法(jQuery和class)
Dec 30 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通用检测函数集合
2006/11/25 PHP
php magic_quotes_gpc的一点认识与分析
2008/08/18 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
javascript 面向对象编程  function是方法(函数)
2009/09/17 Javascript
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
javascript学习笔记(四) Number 数字类型
2012/06/19 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
js简单实现用户注册信息的校验代码
2013/11/15 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
CSS3 3D 技术手把手教你玩转
2016/09/02 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
JavaScript实现无刷新上传预览图片功能
2017/08/02 Javascript
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
JavaScript代码调试方法实例小结
2019/01/05 Javascript
JavaScript队列结构Queue实现过程解析
2020/03/07 Javascript
VUE+elementui组件在table-cell单元格中绘制微型echarts图
2020/04/20 Javascript
跟老齐学Python之从格式化表达式到方法
2014/09/28 Python
深入解析Python中的变量和赋值运算符
2015/10/12 Python
解决python3 urllib中urlopen报错的问题
2017/03/25 Python
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
使用Python中的reduce()函数求积的实例
2019/06/28 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
python各种excel写入方式的速度对比
2020/11/10 Python
我未来的职业规划范文
2014/01/11 职场文书
优秀辅导员事迹材料
2014/02/16 职场文书
《浅水洼里的小鱼》听课反思
2014/02/28 职场文书
优秀共产党员事迹材料
2014/12/18 职场文书
团结友爱主题班会
2015/08/13 职场文书