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


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 相关文章推荐
jquerymobile checkbox及时刷新才能获取其准确值
Apr 14 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
Oct 18 Javascript
js控制分页打印、打印分页示例
Feb 08 Javascript
jquery中的$(document).ready()使用小结
Feb 14 Javascript
JavaScript window.location对象
Nov 14 Javascript
Javascript实现可旋转的圆圈实例代码
Aug 04 Javascript
jQuery实现简单的列表式导航菜单效果代码
Aug 31 Javascript
JavaScript严格模式详解
Nov 18 Javascript
JavaScript、C# URL编码、解码总结
Jan 21 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
Oct 20 jQuery
Vue按需加载的具体实现
Dec 02 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
Apr 15 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
全国FM电台频率大全 - 13 福建省
2020/03/11 无线电
收音机发烧友应当熟知的100条知识
2021/03/02 无线电
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
ThinkPHP实现带验证码的文件上传功能实例
2014/11/01 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
JavaScript 基础篇之对象、数组使用介绍(三)
2012/04/07 Javascript
javascript 快速排序函数代码
2012/05/30 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
2017/07/23 Javascript
使用socket.io实现简单聊天室案例
2018/01/02 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
Vue.js 踩坑记之双向绑定
2018/05/03 Javascript
chosen实现省市区三级联动
2018/08/16 Javascript
js中let能否完全替代IIFE
2019/06/15 Javascript
JS中封装axios来管控api的2种方式
2019/09/11 Javascript
python写日志封装类实例
2015/06/28 Python
python3 实现验证码图片切割的方法
2018/12/07 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
CSS3+DIV实现漂亮的动画彩色标签
2016/06/16 HTML / CSS
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
车间操作工岗位职责
2013/12/19 职场文书
自我鉴定注意事项
2014/01/19 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
《普罗米修斯》教学反思
2016/02/22 职场文书
JavaScript实现贪吃蛇游戏
2021/06/16 Javascript
MySQL 四种连接和多表查询详解
2021/07/16 MySQL
mysql中int(3)和int(10)的数值范围是否相同
2021/10/16 MySQL
Vue ECharts实现机舱座位选择展示功能
2022/05/15 Vue.js