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


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 相关文章推荐
prototype 1.5 &amp; scriptaculous 1.6.1 学习笔记
Sep 07 Javascript
传递参数的标准方法(jQuery.ajax)
Nov 19 Javascript
基于jquery实现点击左右按钮图片横向滚动
Apr 11 Javascript
jQuery+CSS3实现树叶飘落特效
Feb 01 Javascript
jQuery实现炫酷的鼠标轨迹特效
Feb 01 Javascript
AngularJS内置指令
Feb 04 Javascript
JS实现模拟风力的雪花飘落效果
May 13 Javascript
JavaScript严格模式详解
Nov 18 Javascript
js密码强度检测
Jan 07 Javascript
BootStrap树状图显示功能
Nov 24 Javascript
npm配置国内镜像资源+淘宝镜像的方法
Sep 07 Javascript
每个 JavaScript 工程师都应懂的33个概念
Oct 22 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随机数 C扩展随机数
2016/05/04 PHP
PHP实现的简单分页类及用法示例
2016/05/06 PHP
PHP集成环境XAMPP的安装与配置
2018/11/13 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
简单JS代码压缩器
2006/10/12 Javascript
slice函数的用法 之不错的应用
2006/12/29 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
IE 当eval遇上function的处理
2011/08/09 Javascript
JS获取页面窗口大小的代码解读
2011/12/01 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
提取jquery的ready()方法单独使用示例
2014/03/25 Javascript
Js Jquery创建一个弹出层可加载一个页面
2014/05/08 Javascript
jQuery中dequeue()方法用法实例
2014/12/29 Javascript
让DIV的滚动条自动滚动到最底部的3种方法(推荐)
2016/09/24 Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
2016/12/21 Javascript
JS原生轮播图的简单实现(推荐)
2017/07/22 Javascript
JavaScript中创建原子的方法总结
2018/08/26 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
Python脚本在Appium库上对移动应用实现自动化测试
2015/04/17 Python
Python之Web框架Django项目搭建全过程
2017/05/02 Python
python调用opencv实现猫脸检测功能
2019/01/15 Python
解决python写入带有中文的字符到文件错误的问题
2019/01/31 Python
Python算法的时间复杂度和空间复杂度(实例解析)
2019/11/19 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
python 统计list中各个元素出现的次数的几种方法
2021/02/20 Python
CSS+jQuery实现的在线答题功能
2015/04/25 HTML / CSS
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
大学生职业生涯规划书前言
2014/01/09 职场文书
党员倡议书
2015/01/19 职场文书
小学校本教研总结
2015/08/13 职场文书
2016年学校党支部公开承诺书
2016/03/25 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书