微信小程序 图片等比例缩放(图片自适应屏幕)


Posted in Javascript onNovember 16, 2016

微信小程序 图片等比例缩放

早上在论坛上看到有人写了关于图片等比例缩放的文章,只是判断了图片宽是否大于屏幕宽.我之前在做Android的时候也会遇到图片等比例缩放的问题.应该是用图片宽高比和屏幕宽高比做判断.做个笔记.

老规矩,先上图.

1.图片高宽比小于屏幕高宽比

微信小程序 图片等比例缩放(图片自适应屏幕)

2.图片高宽比大于屏幕高宽比

微信小程序 图片等比例缩放(图片自适应屏幕)

3.这种其实也是图片高宽比小于屏幕高宽比,但是高宽都大于屏幕高宽.所以不能简单用高宽来判断,应该是用高宽比判断后做缩放.

微信小程序 图片等比例缩放(图片自适应屏幕)

上代码:

1.index.wxml

<!--index.wxml--> 
<!--图片宽大于屏幕宽--> 
<image style="width: {{imagewidth}}px; height: {{imageheight}}px;" src="{{imagefirstsrc}}" bindload="imageLoad"></image> 
<!--图片高大于屏幕高--> 
<!--<image style="width: {{imagewidth}}px; height: {{imageheight}}px;" src="{{imagesecondsrc}}" bindload="imageLoad"></image>--> 
<!--图片宽高大于屏幕宽高--> 
<!--<image style="width: {{imagewidth}}px; height: {{imageheight}}px;" src="{{imagethirdsrc}}" bindload="imageLoad"></image>-->

2.index.js

//index.js 
//获取应用实例 
var imageUtil = require('../../utils/util.js'); 
var app = getApp() 
Page({ 
 data: { 
  imagefirstsrc: 'http://bpic.588ku.com/back_pic/00/03/85/1656205138bbe2d.png',//图片链接 
  imagesecondsrc: 'http://bpic.588ku.com/back_pic/04/07/63/28581203949ca9d.jpg!/fw/400/quality/90/unsharp/true/compress/true',//图片链接 
  imagethirdsrc:'http://img1.gtimg.com/ent/pics/hv1/13/71/2061/134034643.jpg', 
  imagewidth: 0,//缩放后的宽 
  imageheight: 0,//缩放后的高 
 
 }, 
 onLoad: function () { 
 }, 
 imageLoad: function (e) { 
  var imageSize = imageUtil.imageUtil(e) 
  this.setData({ 
   imagewidth: imageSize.imageWidth, 
   imageheight: imageSize.imageHeight 
  }) 
 } 
})

3.util.js

//util.js 
function imageUtil(e) { 
 var imageSize = {}; 
 var originalWidth = e.detail.width;//图片原始宽 
 var originalHeight = e.detail.height;//图片原始高 
 var originalScale = originalHeight/originalWidth;//图片高宽比 
 console.log('originalWidth: ' + originalWidth) 
 console.log('originalHeight: ' + originalHeight) 
 //获取屏幕宽高 
 wx.getSystemInfo({ 
  success: function (res) { 
   var windowWidth = res.windowWidth; 
   var windowHeight = res.windowHeight; 
   var windowscale = windowHeight/windowWidth;//屏幕高宽比 
   console.log('windowWidth: ' + windowWidth) 
   console.log('windowHeight: ' + windowHeight) 
   if(originalScale < windowscale){//图片高宽比小于屏幕高宽比 
    //图片缩放后的宽为屏幕宽 
     imageSize.imageWidth = windowWidth; 
     imageSize.imageHeight = (windowWidth * originalHeight) / originalWidth; 
   }else{//图片高宽比大于屏幕高宽比 
    //图片缩放后的高为屏幕高 
     imageSize.imageHeight = windowHeight; 
     imageSize.imageWidth = (windowHeight * originalWidth) / originalHeight; 
   } 
    
  } 
 }) 
 console.log('缩放后的宽: ' + imageSize.imageWidth) 
 console.log('缩放后的高: ' + imageSize.imageHeight) 
 return imageSize; 
} 
 
module.exports = { 
 imageUtil: imageUtil 
}
Javascript 相关文章推荐
如何实现动态删除javascript函数
May 27 Javascript
Tips 带三角可关闭的文字提示
Oct 06 Javascript
jQuery 表单验证扩展代码(二)
Oct 20 Javascript
JavaScript实现的石头剪刀布游戏源码分享
Aug 22 Javascript
jquery处理json对象
Nov 03 Javascript
JavaScript编程中容易出BUG的几点小知识
Jan 31 Javascript
简单了解JavaScript操作XPath的一些基本方法
Jun 03 Javascript
JavaScript事件学习小结(三)js事件对象
Jun 09 Javascript
canvas绘图不清晰的解决方案
Feb 28 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
Jun 15 Javascript
antd form表单数据回显操作
Nov 02 Javascript
vue实现购物车的小练习
Dec 21 Vue.js
js以分隔符分隔数组中的元素并转换为字符串的方法
Nov 16 #Javascript
微信小程序 实现拖拽事件监听实例详解
Nov 16 #Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
Nov 16 #Javascript
JavaScript仿微博发布信息案例
Nov 16 #Javascript
使用Node.js给图片加水印的方法
Nov 15 #Javascript
Node.js批量给图片加水印的方法
Nov 15 #Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
Nov 15 #Javascript
You might like
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
如何在PHP程序中防止盗链
2008/04/09 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
yii操作cookie实例简介
2014/07/09 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
List all the Databases on a SQL Server
2007/06/21 Javascript
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
js的表单操作 简单计算器
2011/12/29 Javascript
禁止选中文字兼容IE、Chrome、FF等
2013/09/04 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
2014/06/16 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
2016/06/22 Javascript
js生成随机数(指定范围)的实例代码
2016/07/10 Javascript
React组件的三种写法总结
2017/01/12 Javascript
js实现固定宽高滑动轮播图效果
2017/01/13 Javascript
浅谈$_FILES数组为空的原因
2017/02/16 Javascript
vue多种弹框的弹出形式的示例代码
2017/09/18 Javascript
vue this.reload 方法 配置
2018/09/12 Javascript
vue.js实现备忘录demo
2019/06/26 Javascript
详解Python中类的定义与使用
2017/04/11 Python
Python机器学习之K-Means聚类实现详解
2018/02/22 Python
python如何实现视频转代码视频
2019/06/17 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
python基础教程之while循环
2019/08/14 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
通过代码实例了解Python异常本质
2020/09/16 Python
html5中audio支持音频格式的解决方法
2018/08/24 HTML / CSS
毕业自荐书
2013/12/09 职场文书
社会保险接收函
2014/01/12 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
老师对学生的评语
2014/04/18 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
运动会200米广播稿
2015/08/19 职场文书
PHP中strval()函数实例用法
2021/06/07 PHP
基于Python和openCV实现图像的全景拼接详细步骤
2021/10/05 Python
MySQL数据库完全卸载的方法
2022/03/03 MySQL