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


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 相关文章推荐
js设置组合快捷键/tabindex功能的方法
Nov 21 Javascript
jquery复选框多选赋值给文本框的方法
Jan 27 Javascript
jQuery简单实现图片预加载
Apr 20 Javascript
JQuery选中checkbox方法代码实例(全选、反选、全不选)
Apr 27 Javascript
深入理解Angular2 模板语法
Aug 07 Javascript
JS弹性运动实现方法分析
Dec 15 Javascript
jQuery中的一些小技巧
Jan 18 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
Apr 13 Javascript
详解性能更优越的小程序图片懒加载方式
Jul 18 Javascript
Vue infinite update loop的问题解决
Apr 23 Javascript
移动端手指操控左右滑动的菜单
Sep 08 Javascript
Element的el-tree控件后台数据结构的生成以及方法的抽取
Mar 05 Javascript
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
PHP句法规则详解 入门学习
2011/11/09 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
2020/06/24 PHP
javascript来定义类的规范小结
2010/11/19 Javascript
100个不能错过的实用JS自定义函数
2014/03/05 Javascript
ExtJS中设置下拉列表框不可编辑的方法
2014/05/07 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
浅谈JS对象添加getter与setter的5种方法
2018/06/09 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号
2019/04/28 Javascript
React 父子组件通信的实现方法
2019/12/05 Javascript
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
python 获取文件列表(或是目录例表)
2009/03/25 Python
Python实现获取本地及远程图片大小的方法示例
2018/07/21 Python
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
2020/01/20 Python
学习Python爬虫的几点建议
2020/08/05 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
浅析几个CSS3常用功能的写法
2014/06/05 HTML / CSS
CSS3制作圆角图片和椭圆形图片
2016/07/08 HTML / CSS
英国一家专门出售品牌鞋子的网站:Allsole
2016/08/07 全球购物
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
生物化工工艺专业应届生求职信
2013/10/08 职场文书
物业总经理岗位职责
2014/02/28 职场文书
项目建议书格式
2014/03/12 职场文书
工作求职信
2014/07/04 职场文书
出生医学证明书
2014/09/15 职场文书
OpenCV-Python实现人脸磨皮算法
2021/06/07 Python
Python语言规范之Pylint的详细用法
2021/06/24 Python
简单总结SpringMVC拦截器的使用方法
2021/06/28 Java/Android