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


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 单选框,多选框美化代码
Aug 01 Javascript
js动态设置div的值下例子
Oct 29 Javascript
解析Javascript中中括号“[]”的多义性
Dec 03 Javascript
jQuery子窗体取得父窗体元素的方法
May 11 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
Aug 23 Javascript
js实现适合新闻类图片的轮播效果
Feb 05 Javascript
jQuery开源组件BootstrapValidator使用详解
Jun 29 jQuery
微信页面弹出键盘后iframe内容变空白的解决方案
Sep 20 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
Nov 05 Javascript
javascript实现自由编辑图片代码详解
Jun 21 Javascript
使用p5.js临摹动态图片
Nov 04 Javascript
Element InfiniteScroll无限滚动的具体使用方法
Jul 27 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中for与foreach的区别分析
2011/03/09 PHP
php中用数组的方法设置cookies
2011/04/21 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
2014/11/18 PHP
php目录遍历函数opendir用法实例
2014/11/20 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
用于自动添加Digg This!按钮的JavaScript
2006/12/23 Javascript
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
javascript 表单规则集合对象
2009/07/21 Javascript
基于Jquery的淡入淡出的特效基础练习
2010/12/13 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
2013/11/18 Javascript
关于JavaScript对象的动态选择及遍历对象
2014/03/10 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
2014/11/12 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
Node.js 数据加密传输浅析
2016/11/16 Javascript
AngularJS中directive指令使用之事件绑定与指令交互用法示例
2016/11/22 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
纯jQuery实现前端分页功能
2017/03/23 jQuery
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
python开发之for循环操作实例详解
2015/11/12 Python
Python 装饰器使用详解
2017/07/29 Python
Python的CGIHTTPServer交互实现详解
2018/02/08 Python
在pandas中一次性删除dataframe的多个列方法
2018/04/10 Python
python3+PyQt5使用数据库表视图
2018/04/24 Python
关于CSS Tooltips(鼠标经过时显示)的效果
2013/04/10 HTML / CSS
谷歌浏览器小字体处理方案即12px以下字体
2013/12/17 HTML / CSS
Street One瑞士:德国现代时装公司
2019/10/09 全球购物
Linux如何压缩可执行文件
2014/03/27 面试题
文明青少年标兵事迹材料
2014/01/28 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
篮球比赛策划方案
2014/06/05 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
民事上诉状范文
2015/05/22 职场文书
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript