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


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 相关文章推荐
JavaScript 滚轮事件使用说明
Mar 07 Javascript
收集的一些Array及String原型对象的扩展实现代码
Dec 05 Javascript
jQuery 删除或是清空某个HTML元素示例
Aug 04 Javascript
JS回调函数的应用简单实例
Sep 17 Javascript
node.js中的http.get方法使用说明
Dec 14 Javascript
js改变Iframe中Src的方法
May 05 Javascript
在JavaScript中处理时间之getHours()方法的使用
Jun 10 Javascript
jQuery 选择同时包含两个class的元素的实现方法
Jun 01 Javascript
jQuery事件用法详解
Oct 06 Javascript
vue的基本用法与常见指令
Aug 15 Javascript
探索webpack模块及webpack3新特性
Sep 18 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
Dec 12 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
谈谈新手如何学习PHP 默默经典版本
2009/08/04 PHP
YII2.0之Activeform表单组件用法实例
2016/01/09 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
2017/04/01 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
2019/03/30 PHP
jQuery动态设置form表单的enctype值(实现代码)
2013/07/04 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
es6在react中的应用代码解析
2017/11/08 Javascript
微信小程序实现跑马灯效果
2020/10/21 Javascript
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
[47:53]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#2COL VS Spirit
2016/03/02 DOTA
[02:33]2018DOTA2亚洲邀请赛赛前采访——LGD
2018/04/04 DOTA
python time模块用法实例详解
2014/09/11 Python
在Python的Django框架中获取单个对象数据的简单方法
2015/07/17 Python
Python简单读取json文件功能示例
2017/11/30 Python
学习Python selenium自动化网页抓取器
2018/01/20 Python
Python下载网络文本数据到本地内存的四种实现方法示例
2018/02/05 Python
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
python 输出列表元素实例(以空格/逗号为分隔符)
2019/12/25 Python
Python类的绑定方法和非绑定方法实例解析
2020/03/04 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
Python发送邮件实现基础解析
2020/08/14 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
2020/11/02 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
美国购买隐形眼镜网站:Lenses For Less
2020/07/05 全球购物
介绍一下grep命令的使用
2015/06/12 面试题
区域销售经理职责
2013/12/22 职场文书
授权委托书格式模板
2014/04/03 职场文书
大专生找工作自荐书
2014/06/10 职场文书
建筑管理专业求职信
2014/07/28 职场文书
小学生推普周国旗下讲话稿
2014/09/21 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
2014年科研工作总结
2014/12/03 职场文书
MySQL sql_mode的使用详解
2021/05/08 MySQL
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python