微信小程序 动态的设置图片的高度和宽度详解及实例代码


Posted in Javascript onFebruary 24, 2017

微信小程序图片等比例缩放 动态的获取图片的高度和宽度 动态的设置图片的高度和宽度

前言:

在小程序布局中,如果图片不是固定高度和高度,但image设置的是固定的高度和宽度,这时候原始图片相对image设置的固定高度和宽度不是等比例大小,那么这张图片就会变形,变的不清晰。这时就可以使用下面的等比例缩放的方式缩放图片,让图片不变形。或者通过image的bindload方法动态的获取图片的高度和宽度,动态的设置图片的高度和宽度,是图片布局的高度和宽度和原始图片的高度和宽度相等。

1.图片等比例缩放工具

//Util.js 
 
class Util{ 
 
  /*** 
   * 按照显示图片的宽等比例缩放得到显示图片的高 
   * @params originalWidth 原始图片的宽 
   * @params originalHeight 原始图片的高 
   * @params imageWidth   显示图片的宽,如果不传就使用屏幕的宽 
   * 返回图片的宽高对象 
  ***/ 
  static imageZoomHeightUtil(originalWidth,originalHeight,imageWidth){ 
    let imageSize = {}; 
    if(imageWidth){ 
      imageSize.imageWidth = imageWidth; 
      imageSize.imageHeight = (imageWidth * originalHeight) / originalWidth; 
    }else{//如果没有传imageWidth,使用屏幕的宽 
      wx.getSystemInfo({  
        success: function (res) {  
          imageWidth = res.windowWidth;  
          imageSize.imageWidth = imageWidth; 
          imageSize.imageHeight = (imageWidth * originalHeight) / originalWidth; 
        }  
      }); 
    } 
    return imageSize; 
  } 
 
  /*** 
   * 按照显示图片的高等比例缩放得到显示图片的宽 
   * @params originalWidth 原始图片的宽 
   * @params originalHeight 原始图片的高 
   * @params imageHeight  显示图片的高,如果不传就使用屏幕的高 
   * 返回图片的宽高对象 
  ***/ 
  static imageZoomWidthUtil(originalWidth,originalHeight,imageHeight){ 
    let imageSize = {}; 
    if(imageHeight){ 
      imageSize.imageWidth = (imageHeight *originalWidth) / originalHeight; 
      imageSize.imageHeight = imageHeight; 
    }else{//如果没有传imageHeight,使用屏幕的高 
      wx.getSystemInfo({  
        success: function (res) {  
          imageHeight = res.windowHeight; 
          imageSize.imageWidth = (imageHeight *originalWidth) / originalHeight; 
          imageSize.imageHeight = imageHeight; 
        }  
      }); 
    } 
    return imageSize; 
  } 
 
} 
 
export default Util;

2.使用image组件加载图片,通过bindload动态的获取图片的高度和宽度,动态的设置图片的高度和宽度   index.wxml  (../pro.png是本地图片)

<image bindload="imageLoad" style="width:{{imageWidth}}px;;height:{{imageHeight}}px;" src="../pro.png"/>

index.js

import Util from '../common/Util'; 
 
Page({ 
 data:{ 
    imageWidth:0, 
    imageHeight:0 
 }, 
 imageLoad: function (e) {  
    //获取图片的原始宽度和高度 
    let originalWidth = e.detail.width; 
    let originalHeight = e.detail.height; 
    //let imageSize = Util.imageZoomHeightUtil(originalWidth,originalHeight); 
 
    //let imageSize = Util.imageZoomHeightUtil(originalWidth,originalHeight,375); 
    let imageSize = Util.imageZoomWidthUtil(originalWidth,originalHeight,145); 
 
    this.setData({imageWidth:imageSize.imageWidth,imageHeight:imageSize.imageHeight});  
 } 
})

微信小程序图片等比例缩放 动态的获取图片的高度和宽度 动态的设置图片的高度和宽度

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
event.keyCode键码值表 附只能输入特定的字符串代码
May 15 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
Feb 18 Javascript
jquery中get和post的简单实例
Feb 04 Javascript
vue中渐进过渡效果实现
Oct 27 Javascript
判断颜色是否合法的正则表达式(详解)
May 03 Javascript
javascript中神奇的 Date对象小结
Oct 12 Javascript
JS实现验证码倒计时的注册页面
Jan 02 Javascript
JS实现的文字间歇循环滚动效果完整示例
Feb 13 Javascript
vue左侧菜单,树形图递归实现代码
Aug 24 Javascript
详解vue 数组和对象渲染问题
Sep 21 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
Apr 02 Javascript
vue+element-ui+axios实现图片上传
Aug 20 Javascript
微信小程序实现实时圆形进度条的方法示例
Feb 24 #Javascript
JavaScript中三种常见的排序方法
Feb 24 #Javascript
Angular2 Service实现简单音乐播放器服务
Feb 24 #Javascript
Bootstrap3多级下拉菜单
Feb 24 #Javascript
使用原生的javascript来实现轮播图
Feb 24 #Javascript
从零学习node.js之mysql数据库的操作(五)
Feb 24 #Javascript
微信小程序 定位到当前城市实现实例代码
Feb 23 #Javascript
You might like
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
PHP基础教程(php入门基础教程)一些code代码
2013/01/06 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
2014/03/11 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
2014/08/22 PHP
windows中为php安装mongodb与memcache
2015/01/06 PHP
php实现微信发红包
2015/12/05 PHP
PHP环境搭建(php+Apache+mysql)
2016/11/14 PHP
javascript 框架小结 个人工作经验
2009/06/13 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
Node.js API详解之 repl模块用法实例分析
2020/05/25 Javascript
使用element-ui +Vue 解决 table 里包含表单验证的问题
2020/07/17 Javascript
如何在 Vue 表单中处理图片
2021/01/26 Vue.js
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
[08:40]Navi Vs Newbee
2018/06/07 DOTA
python中PIL安装简单教程
2016/04/21 Python
python实现下载文件的三种方法
2017/02/09 Python
Python+tkinter模拟“记住我”自动登录实例代码
2018/01/16 Python
python中的常量和变量代码详解
2018/07/25 Python
Python实例方法、类方法、静态方法的区别与作用详解
2019/03/25 Python
Python字典对象实现原理详解
2019/07/01 Python
Python安装selenium包详细过程
2019/07/23 Python
python机器学习包mlxtend的安装和配置详解
2019/08/21 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
使用matlab 判断两个矩阵是否相等的实例
2020/05/11 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
python中count函数知识点浅析
2020/12/17 Python
瑞士国际航空官网:SWISS
2016/07/21 全球购物
领导班子“四风问题”“整改方案
2014/10/02 职场文书
2016年员工年度考核评语
2015/12/02 职场文书
Win11电源已接通但未充电怎么办?Win11电源已接通未充电的解决方法
2022/04/05 数码科技