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


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 相关文章推荐
简单的JS多重继承示例
Mar 13 Javascript
jquery 表格分页等操作实现代码(pagedown,pageup)
Apr 11 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
Apr 02 Javascript
js运动框架_包括图片的淡入淡出效果
May 11 Javascript
JS实现控制表格只显示行边框或者只显示列边框的方法
Mar 31 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
Sep 14 Javascript
基于jQuery Tipso插件实现消息提示框特效
Mar 16 Javascript
AJAX和jQuery动态加载数据的实现方法
Dec 05 Javascript
详解.vue文件解析的实现
Jun 11 Javascript
node.js使用express框架进行文件上传详解
Mar 03 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
Aug 10 Javascript
js+audio实现音乐播放器
Sep 13 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
E路文章系统PHP
2006/12/11 PHP
php数据结构与算法(PHP描述) 查找与二分法查找
2012/06/21 PHP
迅速确定php多维数组的深度的方法
2014/01/07 PHP
浅析ThinkPHP中execute和query方法的区别
2014/06/13 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
2014/12/24 PHP
php结合正则获取字符串中数字
2015/06/19 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
javascript 新浪背投广告实现代码
2009/07/07 Javascript
picChange 图片切换特效的函数代码
2010/05/06 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
2012/08/09 Javascript
jquery调取json数据实现省市级联的方法
2015/01/29 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
2017/02/23 Javascript
基于JS实现仿京东搜索栏随滑动透明度渐变效果
2017/07/10 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
vue router 通过路由来实现切换头部标题功能
2019/04/24 Javascript
JS异步宏队列与微队列原理区别详解
2020/07/02 Javascript
Vue清除定时器setInterval优化方案分享
2020/07/21 Javascript
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
REN Clean Skincare官网:英国本土有机护肤品牌
2019/02/23 全球购物
Charles & Keith欧盟:新加坡时尚品牌
2019/08/01 全球购物
大学生饮食连锁店创业计划书
2014/01/17 职场文书
《王二小》教学反思
2014/02/27 职场文书
市场调查策划方案
2014/06/10 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
个人收入证明模板
2014/09/18 职场文书
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
大学生自荐材料范文
2014/12/30 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
烈士陵园观后感
2015/06/08 职场文书
Python图像处理之图像拼接
2021/04/28 Python
解析Redis Cluster原理
2021/06/21 Redis