微信小程序实现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的动态添加控件并取值的实现代码
Sep 24 Javascript
jQuery1.6 正式版发布并提供下载
May 05 Javascript
JS比较两个时间大小的简单示例代码
Dec 20 Javascript
我的Node.js学习之路(一)
Jul 06 Javascript
js实现仿MSN带关闭功能的右下角弹窗代码
Sep 04 Javascript
JavaScript获取各大浏览器信息图示
Nov 20 Javascript
JavaScript中的函数(二)
Dec 23 Javascript
探究Javascript模板引擎mustache.js使用方法
Jan 26 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
Dec 20 Javascript
微信小程序自定义模态对话框实例详解
Aug 16 Javascript
解决koa2 ctx.render is not a function报错问题
Aug 07 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
May 09 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
php动态生成JavaScript代码
2009/03/09 PHP
PHP简单的MVC框架实现方法
2015/12/01 PHP
总结的一些PHP开发中的tips(必看篇)
2017/03/24 PHP
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
jquery 简短几句代码实现给元素动态添加及获取提示信息
2011/09/01 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
javascript ready和load事件的区别示例介绍
2013/08/30 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
JavaScript设计模式之工厂模式和构造器模式
2015/02/11 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
2015/09/10 Javascript
JSONP基础知识详解
2017/03/19 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
微信小程序实现topBar底部选择栏效果
2018/07/20 Javascript
Vue使用JSEncrypt实现rsa加密及挂载方法
2020/02/07 Javascript
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
在Windows8上的搭建Python和Django环境
2014/07/03 Python
Python3实现从指定路径查找文件的方法
2015/05/22 Python
python生成词云的实现方法(推荐)
2017/06/13 Python
Python中遍历列表的方法总结
2019/06/27 Python
Python字符串对象实现原理详解
2019/07/01 Python
Python venv虚拟环境配置过程解析
2020/07/08 Python
实例代码讲解Python 线程池
2020/08/24 Python
时尚、社区、科技:SEVENSTORE
2019/04/26 全球购物
天逸系统(武汉)有限公司Java笔试题
2015/12/29 面试题
C语言面试题
2013/05/19 面试题
酒店管理毕业生自我鉴定
2014/03/02 职场文书
法人代表任命书范本
2014/06/05 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
公司领导班子召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
公司费用报销管理制度
2015/08/04 职场文书