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


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高级程序设计 阅读笔记(二十) js错误处理
Aug 14 Javascript
javascript仿qq界面的折叠菜单实现代码
Dec 12 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
Jun 30 Javascript
javascript事件冒泡和事件捕获详解
May 26 Javascript
Bootstrap每天必学之按钮(一)
Nov 24 Javascript
angular中实现控制器之间传递参数的方式
Apr 24 Javascript
Bootstrap 3多级下拉菜单实例
Nov 23 Javascript
vue 解决循环引用组件报错的问题
Sep 06 Javascript
node.js的Express服务器基本使用教程
Jan 09 Javascript
JavaScript箭头函数中的this详解
Jun 19 Javascript
js实现简单贪吃蛇游戏
May 15 Javascript
简单聊聊Vue中的计算属性和属性侦听
Oct 05 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
php输出全球各个时区列表的方法
2015/03/31 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
2019/08/12 PHP
用JQuery 实现AJAX加载XML并解析的脚本
2009/07/25 Javascript
基于jQuery的history历史记录插件
2010/12/11 Javascript
Jquery 表格合并的问题分享
2011/09/17 Javascript
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
Javascript setInterval的两种调用方法(实例讲解)
2013/11/29 Javascript
js判断字符长度以及中英文数字等
2013/12/31 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
JavaScript实现的一个计算数字步数的算法分享
2014/12/06 Javascript
浅谈JavaScript中的字符编码转换问题
2015/07/07 Javascript
url中的特殊符号有什么含义(推荐)
2016/06/17 Javascript
JavaScript 节流函数 Throttle 详解
2016/07/04 Javascript
Windows环境下npm install 报错: operation not permitted, rename的解决方法
2016/09/26 Javascript
bootstrap table单元格新增行并编辑
2017/05/19 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
2017/12/07 Javascript
对类Vue的MVVM前端库的实现代码
2018/09/07 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
Python中的数学运算操作符使用进阶
2016/06/20 Python
Python heapq使用详解及实例代码
2017/01/25 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
解决pip install的时候报错timed out的问题
2018/06/12 Python
django组合搜索实现过程详解(附代码)
2019/08/06 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
2020/03/06 Python
PyTorch中的C++扩展实现
2020/04/02 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
大学学习个人的自我评价
2014/02/18 职场文书
初三学习决心书
2014/03/11 职场文书
2015年超市工作总结
2015/04/09 职场文书
公司岗位说明书
2015/10/08 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
JavaScript阻止事件冒泡的方法
2021/12/06 Javascript
golang定时器
2022/04/14 Golang