微信小程序实现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 相关文章推荐
JS面向对象、prototype、call()、apply()
May 14 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
May 23 Javascript
fancybox modal的完美解决(右上的X)
Oct 30 Javascript
jquery自定义属性(类型/属性值)
May 21 Javascript
javascript实现连续赋值
Aug 10 Javascript
jquery ajax局部加载方法详解(实现代码)
May 12 Javascript
全面了解函数声明与函数表达式、变量提升
Aug 09 Javascript
响应式表格之固定表头的简单实现
Aug 26 Javascript
react.js 获取真实的DOM节点实例(必看)
Apr 17 Javascript
Vue Socket.io源码解读
Feb 07 Javascript
Vue2.0实现组件数据的双向绑定问题
Mar 06 Javascript
js实现模拟购物商城案例
May 18 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中的session永不过期的解决思路及实现方法分享
2011/04/20 PHP
yii实现CheckBox复选框在同一行显示的方法
2014/12/03 PHP
ThinkPHP中redirect用法分析
2014/12/05 PHP
laravel创建类似ThinPHP中functions.php的全局函数
2016/11/26 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
2017/07/10 PHP
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
2015/12/20 Javascript
JavaScript优化专题之Loading and Execution加载和运行
2016/01/20 Javascript
node模块机制与异步处理详解
2016/03/13 Javascript
原生的强大DOM选择器querySelector介绍
2016/12/21 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
React-Native中禁用Navigator手势返回的示例代码
2017/09/09 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
Layui选项卡制作历史浏览记录的方法
2019/09/28 Javascript
react MPA 多页配置详解
2019/10/18 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
Python处理PDF及生成多层PDF实例代码
2017/04/24 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
荟萃全球保健品:维他购
2018/05/09 全球购物
Cinque网上商店:德国服装品牌
2019/03/17 全球购物
.NET面试题:什么是值类型和引用类型
2016/01/12 面试题
汽车运用工程毕业生自荐信
2013/10/29 职场文书
网页美工求职信
2014/02/15 职场文书
大学信息公开实施方案
2014/03/09 职场文书
网络管理专业求职信
2014/03/15 职场文书
土地转让协议书
2014/04/15 职场文书
初中升旗仪式演讲稿
2014/05/08 职场文书
法人授权委托书样本
2014/09/19 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
大三学生英语考试作弊检讨书
2015/01/01 职场文书
党员进社区活动总结
2015/05/07 职场文书
养成教育主题班会
2015/08/13 职场文书
初中英语教学随笔
2015/08/15 职场文书
二手手机买卖合同范本(2019年版)
2019/10/28 职场文书
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers