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


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访问样式表代码
Oct 15 Javascript
Jquery拖拽并简单保存的实现代码
Nov 28 Javascript
借助JavaScript脚本判断浏览器Flash Player信息的方法
Jul 09 Javascript
关注jquery技巧提高jquery技能(前端开发必学)
Nov 02 Javascript
JavaScript中String对象的方法介绍
Jan 04 Javascript
JS实现给对象动态添加属性的方法
Jan 05 Javascript
原生js轮播(仿慕课网)
Feb 15 Javascript
走进javascript——不起眼的基础,值和分号
Feb 24 Javascript
详解a++和++a的区别
Aug 30 Javascript
微信小程序url与token设置详解
Sep 26 Javascript
React Form组件的实现封装杂谈
May 07 Javascript
JS实现简易留言板增删功能
Feb 08 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
global.php
2006/12/09 PHP
PHP 超链接 抓取实现代码
2009/06/29 PHP
PHP取得一个类的属性和方法的实现代码
2011/05/22 PHP
定义php常量的详解
2013/06/09 PHP
关于zend studio 出现乱码问题的总结
2013/06/23 PHP
php调用c接口无错版介绍
2014/03/11 PHP
微信公众平台开发关注及取消关注事件的方法
2014/12/23 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
2016/03/09 PHP
PHP 的比较运算与逻辑运算详解
2016/05/12 PHP
php查询及多条件查询
2017/02/26 PHP
PHP基于socket实现客户端和服务端通讯功能
2017/07/13 PHP
基于php数组中的索引数组和关联数组详解
2018/03/12 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
JS中如何实现点击a标签返回页面顶部的问题
2017/01/19 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
2017/03/15 Javascript
js实现扫雷小程序的示例代码
2017/09/27 Javascript
vue+springmvc导出excel数据的实现代码
2018/06/27 Javascript
微信小程序使用npm支持踩坑
2018/11/07 Javascript
Vue CLI4 Vue.config.js标准配置(最全注释)
2020/06/05 Javascript
Python中强大的命令行库click入门教程
2016/12/26 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
2020/02/26 Python
python实现数学模型(插值、拟合和微分方程)
2020/11/13 Python
python 批量将中文名转换为拼音
2021/02/07 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
2021/02/24 Python
法学专业自我鉴定
2014/02/05 职场文书
小学音乐教学反思
2014/02/05 职场文书
致1500米运动员广播稿
2014/02/07 职场文书
2014年两会学习心得范例
2014/03/17 职场文书
工程力学专业自荐信范文
2014/03/17 职场文书
百年校庆节目主持词
2014/03/27 职场文书
幼儿园教师的考核评语
2014/04/18 职场文书
公司合作协议范文
2014/10/01 职场文书
法定代表人授权委托书格式
2014/10/14 职场文书
教育教学工作反思
2016/02/24 职场文书
Go微服务项目配置文件的定义和读取示例详解
2022/06/21 Golang