微信小程序 本地图片按照屏幕尺寸处理


Posted in Javascript onAugust 04, 2017

微信小程序 本地图片按照屏幕尺寸处理

前言:

个人感觉微信小程序的IDE用起来有时候不太方便,可能是之前用惯了Eclipse的原因吧。微信小程序的开发工具不支持直接将文件拷贝到目录下,所以首先要将图片文件导入到本地目录下,然后编写工具类获取屏幕的宽度和高度,具体步骤如下图。

1、本地图片导入

步骤一:选择最左侧的菜单中的项目

微信小程序 本地图片按照屏幕尺寸处理

步骤二:选择打开后将图片直接拷贝到新建的image文件夹下

图片导入完成后,项目的整体目录结构如下图所示,

微信小程序 本地图片按照屏幕尺寸处理

2、按屏幕尺寸自适应图片宽和高

步骤一:编写工具函数,返回封装后的屏幕高度和宽度

打开根目录下的utils文件夹下的utils.js文件,个人感觉这个类似Java里面的工具类,具体代码如下:

/** 
 * 获取移动端显示屏的宽和高, 
 * 参数:e, 
 * return viewSize (包含显示屏的宽和高) 
 */ 
function getViewWHInfo(e){ 
  var viewSize={}; 
  var originalWidth = e.detail.width;//图片原始宽  
  var originalHeight = e.detail.height;//图片原始高  
  wx.getSystemInfo({ 
   success: function (res) {  
    //读取系统宽度和高度 
    var viewWidth = res.windowWidth; 
    var viewHeight = res.windowHeight;  
    console.log(originalWidth + " " + originalHeight); 
    console.log("宽:" + viewWidth + "高" + viewHeight); 
    viewSize.width = viewWidth; 
    viewSize.height = viewHeight; 
   } 
  }); 
  return viewSize; 
} 
//导出接口--必须要写 
module.exports = { 
 getViewWHInfo: getViewWHInfo 
}

步骤二:编辑脚本文件

打开index文件夹下的index.js文件,将原有的内容全部删除,并将下列代码直接复制,首先调用require函数将工具类进行实例化,其中data里面设置的是我们在index.wxml文件中需要读取的变量,imageLoad函数将绑定图片加载事件bindLoad, imageUtil.getViewWHInfo(e)该句调用了上面自定义的函数。

//index.js 
//获取应用实例 
//获取工具类的应用实例  
var imageUtil = require('../../utils/util.js');  
var app = getApp() 
Page({ 
 data:{ 
  imageUrl:"../image/1.jpg", 
  viewHeigh:"", 
  viewWidth:"" 
 }, 
 onLoad: function () { 
 }, 
 imageLoad:function(e){ 
  var viewSize = imageUtil.getViewWHInfo(e); 
  //console.log(viewSize.heigh); 
  this.setData({ 
   viewHeigh: viewSize.height, 
   viewWidth: viewSize.width 
  }); 
   
 } 
})

步骤三:编辑图片标签

打开index文件夹下的index.wxml文件,删除原有的全部内容,将下面的图片插入代码直接复制粘贴,其中style表示的是标签的样式,width:{{viewWidth}}表示图片的宽度是取index.js文件中所赋的值,height和src同理,bindload事件表示该图片加载的时候绑定了index.js文件imageLoad函数,并且在图片加载时执行该函数。

<image  
style="width: {{viewWidth}}px; height: {{viewHeigh}}px;" src="{{imageUrl}}" bindload="imageLoad"> 
</image>

最后效果图:

微信小程序 本地图片按照屏幕尺寸处理

以上就是微信小程序 本地图片按照屏幕尺寸处理的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
js判断变量是否未定义的代码
Mar 28 Javascript
JS实现鼠标单击与双击事件共存
Mar 08 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
Jun 08 Javascript
Bootstrap CSS布局之表格
Dec 17 Javascript
详解vue-Resource(与后端数据交互)
Jan 16 Javascript
Vue实现virtual-dom的原理简析
Jul 10 Javascript
浅谈原型对象的常用开发模式
Jul 22 Javascript
vue.js element-ui validate中代码不执行问题解决方法
Dec 18 Javascript
深入理解node.js http模块
Jan 24 Javascript
vue如何安装使用Quill富文本编辑器
Sep 21 Javascript
iview实现select tree树形下拉框的示例代码
Dec 21 Javascript
vue+webpack dev本地调试全局样式引用失效的解决方案
Nov 12 Javascript
Javascript实现跨域后台设置拦截的方法详解
Aug 04 #Javascript
微信小程序 五星评分的实现实例
Aug 04 #Javascript
JavaScript中in和hasOwnProperty区别详解
Aug 04 #Javascript
JavaScript hasOwnProperty() 函数实例详解
Aug 04 #Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
Aug 04 #Javascript
Angular实现响应式表单
Aug 04 #Javascript
JS 实现banner图片轮播效果(鼠标事件)
Aug 04 #Javascript
You might like
php session应用实例 登录验证
2009/03/16 PHP
PHP 实现多服务器共享 SESSION 数据
2009/08/15 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
2013/06/03 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
2013/07/05 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
2016/11/23 PHP
PHP数据库操作二:memcache用法分析
2017/08/16 PHP
php桥接模式应用案例分析
2019/10/23 PHP
js的with语句使用方法
2007/09/21 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
Vue.js仿微信聊天窗口展示组件功能
2017/08/11 Javascript
Vue一个案例引发的递归组件的使用详解
2018/11/15 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
2020/07/20 Javascript
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
详解Python Socket网络编程
2016/01/05 Python
Python模拟登陆实现代码
2017/06/14 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
挪威手表购物网站:Klokker
2016/09/19 全球购物
瑜伽服装品牌:露露柠檬(lululemon athletica)
2017/06/04 全球购物
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
2016/08/13 面试题
清华大学自主招生自荐信
2014/01/29 职场文书
超市总经理岗位职责
2014/02/02 职场文书
公司会计岗位职责
2014/02/13 职场文书
市场推广策划方案
2014/06/02 职场文书
作风建设年度心得体会
2014/10/29 职场文书
幼儿园教师师德承诺书
2015/04/28 职场文书
2016七一建党节慰问信
2015/11/30 职场文书
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python