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


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 相关文章推荐
优化网页之快速的呈现我们的网页
Jun 29 Javascript
Js callBack 返回前一页的js方法
Nov 30 Javascript
jquerymobile局部渲染的各种刷新方法小结
Mar 05 Javascript
判断复选框是否被选中的两种方法
Jun 04 Javascript
javascript中局部变量和全局变量的区别详解
Feb 27 Javascript
javascript实现全角转半角的方法
Jan 23 Javascript
JavaScript实现页面跳转的方式汇总
May 16 Javascript
JavaScript判断浏览器及其版本信息
Jan 20 Javascript
JavaScript用二分法查找数据的实例代码
Jun 17 Javascript
如何把vuejs打包出来的文件整合到springboot里
Jul 26 Javascript
浅谈Vue 自动化部署打包上线
Jun 14 Javascript
vue3.0 加载json的方法(非ajax)
Oct 26 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彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
2014/08/06 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
javascript和HTML5利用canvas构建猜牌游戏实现算法
2013/07/17 Javascript
浅析JavaScript中的隐式类型转换
2013/12/05 Javascript
javascript实现将文件保存到本地方法汇总
2015/07/26 Javascript
js中unicode转码方法详解
2015/10/09 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
2016/02/16 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
vue自定义指令实现v-tap插件
2016/11/03 Javascript
JavaScript 计算笛卡尔积实例详解
2016/12/02 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
Node.js中你不可不精的Stream(流)
2018/06/08 Javascript
Postman如何实现参数化执行及断言处理
2020/07/28 Javascript
Python函数中的函数(闭包)用法实例
2016/03/15 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
2018/12/05 Python
Python Opencv实现图像轮廓识别功能
2020/03/23 Python
python文本数据处理学习笔记详解
2019/06/17 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
Python计算指定日期是今年的第几天(三种方法)
2020/03/26 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
python zip()函数的使用示例
2020/09/23 Python
Python创建简单的神经网络实例讲解
2021/01/04 Python
Python 中Operator模块的使用
2021/01/30 Python
Python中生成ndarray实例讲解
2021/02/22 Python
全球领先的鞋类零售商:The Walking Company
2016/07/21 全球购物
瑞士灯具购物网站:Lampenwelt.ch
2018/07/08 全球购物
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
大学校务公开实施方案
2014/03/31 职场文书
做一个有道德的人活动方案
2014/08/25 职场文书
违反交通安全法检讨书
2014/10/24 职场文书
销售辞职信范文
2015/03/02 职场文书
给朋友的道歉短信
2015/05/12 职场文书
2016年感恩父亲节活动总结
2016/04/01 职场文书
html5表单的required属性使用
2021/07/07 HTML / CSS