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


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 秒表实现代码
Jul 24 Javascript
jQuery制作拼图小游戏
Jan 12 Javascript
js实现精美的银灰色竖排折叠菜单
May 16 Javascript
jQuery实现简洁的导航菜单效果
Nov 23 Javascript
浅谈JS原型对象和原型链
Mar 02 Javascript
Bootstrap Paginator分页插件使用方法详解
May 30 Javascript
类似于QQ的右滑删除效果的实现方法
Oct 16 Javascript
Node.js中看JavaScript的引用
Apr 22 Javascript
利用C/C++编写node.js原生模块的方法教程
Jul 07 Javascript
JavaScript 中使用 Generator的方法
Dec 29 Javascript
基于Vue实现微信小程序的图文编辑器
Jul 25 Javascript
基于vue实现简易打地鼠游戏
Aug 21 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
一个简洁的多级别论坛
2006/10/09 PHP
PHP合并两个数组的两种方式的异同
2012/09/14 PHP
PHP实现视频文件上传完整实例
2014/08/28 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
js 分页全选或反选标识实现代码
2011/08/09 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
javascript中传统事件与现代事件
2015/06/23 Javascript
Node.js重新刷新session过期时间的方法
2016/02/04 Javascript
BootStrap的双日历时间控件使用
2017/07/25 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
使用xampp将angular项目运行在web服务器的教程
2019/09/16 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
JS获取表格视图所选行号的ids过程解析
2020/02/21 Javascript
[00:32]2018DOTA2亚洲邀请赛OpTic出场
2018/04/03 DOTA
Python实现TCP/IP协议下的端口转发及重定向示例
2016/06/14 Python
Python将图片批量从png格式转换至WebP格式
2020/08/22 Python
Python实现网络端口转发和重定向的方法
2016/09/19 Python
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
利用python爬取软考试题之ip自动代理
2017/03/28 Python
Python 迭代器与生成器实例详解
2017/05/18 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
Python中fnmatch模块的使用详情
2018/11/30 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
函授生自我鉴定
2014/03/25 职场文书
《草原的早晨》教学反思
2014/04/08 职场文书
环保口号大全
2014/06/12 职场文书
2014年保管员工作总结
2014/11/18 职场文书
2015年大学生社会实践评语
2015/03/26 职场文书
九年级数学教学反思
2016/02/17 职场文书
2016年师德先进个人事迹材料
2016/02/29 职场文书
2016年精神文明建设先进个人事迹材料
2016/02/29 职场文书
微信小程序用户授权最佳实践指南
2021/05/08 Javascript
浅谈Redis中的RDB快照
2021/06/29 Redis
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL