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


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 相关文章推荐
解决AJAX中跨域访问出现'没有权限'的错误
Aug 20 Javascript
JS 自动安装exe程序
Nov 30 Javascript
JavaScript 语法集锦 脚本之家基础推荐
Nov 15 Javascript
javascript 事件处理、鼠标拖动效果实现方法详解
May 11 Javascript
Javascript获取HTML静态页面参数传递值示例
Aug 18 Javascript
JS动态添加与删除select中的Option对象(示例代码)
Dec 20 Javascript
jquery动画效果学习笔记(8种效果)
Nov 13 Javascript
纯JS前端实现分页代码
Jun 21 Javascript
javascript 中iframe高度自适应(同域)实例详解
May 16 Javascript
Vuejs 单文件组件实例详解
Feb 09 Javascript
详解项目升级到vue-cli3的正确姿势
Jan 28 Javascript
在Layui中实现开关按钮的效果实例
Sep 29 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设计模式 注册表模式
2012/02/05 PHP
PHP代码优化技巧小结
2015/09/29 PHP
PHP设计模式之命令模式示例详解
2020/12/20 PHP
许愿墙中用到的函数
2006/10/07 Javascript
javascript引用对象的方法
2007/01/11 Javascript
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
js取值中form.all和不加all的区别介绍
2014/01/20 Javascript
JS实现让网页背景图片斜向移动的方法
2015/02/25 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
基于Vue-cli快速搭建项目的完整步骤
2018/11/03 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
JavaScript常用工具函数大全
2020/05/06 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
2020/10/27 Javascript
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
python标准日志模块logging的使用方法
2013/11/01 Python
用Python编写一个简单的FUSE文件系统的教程
2015/04/02 Python
Python实现简单的文件传输与MySQL备份的脚本分享
2016/01/03 Python
详解python调度框架APScheduler使用
2017/03/28 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
使用Python设计一个代码统计工具
2018/04/04 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
使用Python创建简单的HTTP服务器的方法步骤
2019/04/26 Python
python2.7的flask框架之引用js&amp;css等静态文件的实现方法
2019/08/22 Python
HTML5 File接口在web页面上使用文件下载
2017/02/27 HTML / CSS
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
会计出纳员的自我评价
2014/01/15 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
老人节标语大全
2014/10/08 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
2014年医药代表工作总结
2014/11/22 职场文书
2014年组织委员工作总结
2014/12/01 职场文书