微信小程序实现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 相关文章推荐
使用CSS和jQuery模拟select并附提交后取得数据的代码
Oct 18 Javascript
javascript图片延迟加载实现方法及思路
Dec 31 Javascript
jQuery深拷贝Json对象简单示例
Jul 06 Javascript
JavaScript实战之带收放动画效果的导航菜单
Aug 16 Javascript
点击页面任何位置隐藏div的实现方法
Sep 05 Javascript
yarn与npm的命令行小结
Oct 20 Javascript
javascript 组合按键事件监听实现代码
Feb 21 Javascript
老生常谈angularjs中的$state.go
Apr 24 Javascript
iview table render集成switch开关的实例
Mar 14 Javascript
深入理解vue-class-component源码阅读
Feb 18 Javascript
express框架中使用jwt实现验证的方法
Aug 25 Javascript
Javascript 关于基本类型和引用类型的个人理解
Nov 01 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
3种平台下安装php4经验点滴
2006/10/09 PHP
简单的PHP缓存设计实现代码
2011/09/30 PHP
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
图解找出PHP配置文件php.ini的路径的方法
2014/08/20 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
2014/11/12 PHP
php中base_convert()进制数字转换函数实例
2014/11/20 PHP
基于win2003虚拟机中apache服务器的访问
2017/08/01 PHP
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
dojo随手记 gird组件引用
2011/02/24 Javascript
JS实现的不规则TAB选项卡效果代码
2015/09/18 Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
2015/12/02 Javascript
浅析JavaScript中浏览器的兼容问题
2016/04/19 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
2016/11/07 Javascript
babel基本使用详解
2017/02/17 Javascript
微信小程序实现图片预览功能
2018/01/31 Javascript
详解微信小程序缓存--缓存时效性
2019/05/02 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
vue 设置 input 为不可以编辑的实现方法
2019/09/19 Javascript
Vue实现兄弟组件间的联动效果
2020/01/21 Javascript
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python实现Tab自动补全和历史命令管理的方法
2015/03/12 Python
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
2017/05/19 Python
python 中random模块的常用方法总结
2017/07/08 Python
pandas 如何分割字符的实现方法
2019/07/29 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
使用css3实现的windows8开机加载动画
2014/12/09 HTML / CSS
HTML5视频支持检测(检查浏览器是否支持视频播放)
2013/06/08 HTML / CSS
英国航空官网:British Airways
2016/09/11 全球购物
学年末自我鉴定
2014/01/21 职场文书
增员口号大全
2014/06/18 职场文书
自愿离婚协议书2015
2015/01/26 职场文书
中标通知书格式
2015/04/17 职场文书
美德少年主要事迹材料
2015/11/04 职场文书
JavaGUI模仿QQ聊天功能完整版
2021/07/04 Java/Android
电脑关机速度很慢怎么办 提升电脑关机速度设置教程
2022/04/08 数码科技