微信小程序实现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 div层的放大与缩小简单实现代码
Mar 28 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
Nov 08 Javascript
angularJS结合canvas画图例子
Feb 09 Javascript
JS实现窗口加载时模拟鼠标移动的方法
Jun 03 Javascript
移动端横屏的JS代码(beta)
May 16 Javascript
JS控制层作圆周运动的方法
Jun 20 Javascript
Bootstrap路径导航与分页学习使用
Feb 08 Javascript
vue2.0构建单页应用最佳实战
Apr 01 Javascript
vue设置一开始进入的页面教程
Oct 28 Javascript
微信小程序实现下滑到底部自动翻页功能
Mar 07 Javascript
Vue computed 计算属性代码实例
Apr 22 Javascript
vue+Element中table表格实现可编辑(select下拉框)
May 21 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
spl_autoload_register与autoload的区别详解
2013/06/03 PHP
PHP在网页中动态生成PDF文件详细教程
2014/07/05 PHP
用PHP生成excel文件到指定目录
2015/06/22 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
为JS扩展Array.prototype.indexOf引发的问题探讨及解决
2013/04/24 Javascript
javascript内存管理详细解析
2013/11/11 Javascript
简单谈谈javascript中的变量、作用域和内存问题
2015/08/30 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
微信小程序HTTP接口请求封装的实现
2019/02/21 Javascript
nodejs微信开发之接入指南
2019/03/17 NodeJs
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
javascript实现时钟动画
2020/12/03 Javascript
tornado框架blog模块分析与使用
2013/11/21 Python
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
归纳整理Python中的控制流语句的知识点
2015/04/14 Python
Python通过Pygame绘制移动的矩形实例代码
2018/01/03 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
TensorFlow实现从txt文件读取数据
2020/02/05 Python
python时间与Unix时间戳相互转换方法详解
2020/02/13 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
2020/04/26 Python
如何Tkinter模块编写Python图形界面
2020/10/14 Python
如何用 Python 制作一个迷宫游戏
2021/02/25 Python
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
耐克亚太地区:Nike APAC
2019/12/07 全球购物
介绍一些UNIX常用简单命令
2014/11/11 面试题
中学教师实习自我鉴定
2013/09/28 职场文书
ktv收银员岗位职责
2013/12/16 职场文书
七一党建活动方案
2014/01/28 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
七一慰问简报
2015/07/20 职场文书
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB