//本例代码如有问题,请加群,下载今日日期文件,测试。(如对本例有疑问,也可加群咨询群主)

WXML:

<view class="imgbox">
<block wx:for="{{imgarr}}" wx:for-item='item' wx:for-index='idx'>
<image src="{{imgarr[idx]}}" data-id="{{idx}}" bindload="imageLoad" style="width:{{viewWidthArr[idx]}}px; height:{{viewHeightArr[idx]}}px"></image>
</block>
</view>

WXSS:

.imgbox{
width: %;
margin-left: %;
}

JS:

Page({
data: {
imgarr: ['http://img35.photophoto.cn/20150512/0035035061753190_s.jpg', 'http://img.mp.itc.cn/upload/20160923/436c0efb4f58437089699cecd9d62f38_th.jpg', 'http://photocdn.sohu.com/20070701/Img250855658.jpg'],
/*图片列表的高度值数组*/
viewHeightArr: [],
viewWidthArr: []
},
onLoad: function () {
/*获取用户屏幕的实际宽度,取94%的宽度,把取到的值付给缓存*/
wx.getSystemInfo({
success: function (res) {
var screenWidth = parseInt(res.screenWidth * 0.94);
wx.setStorageSync('screenWidth', screenWidth);
},
});
//获取缓存中屏幕的宽度
var screenWidth = wx.getStorageSync('screenWidth');
this.setData({
screenWidth: screenWidth
});
},
imageLoad: function (res) {
var dataid = res.currentTarget.dataset.id;
//获取图片高度数组
var viewHeightArr = this.data.viewHeightArr;
//获取图片宽度数组
var viewWidthArr = this.data.viewWidthArr;
/*判断图片的实际宽度是否大于缓存中屏幕的宽度,如果大于就取屏幕的宽度作为图片的宽度,如果小于屏幕的宽度,图片的宽度和高度就设置为图片的实际宽度*/
//获取屏幕宽度
var screenWidth = this.data.screenWidth;
//获取图片实际宽度
var imgwidth = res.detail.width;
//获取图片的实际高度
var imgheight = res.detail.height;
if (imgwidth > screenWidth) {
//获取图片的宽高比例值
var ratio = imgwidth / imgheight;
//设置图片自适应的高度
var viewHeight = parseInt(screenWidth / ratio);
//根据实际加载的图片id来赋值给数组
//把图片的高度付給数组
viewHeightArr[dataid]=viewHeight;
//把图片的宽度付給数组
viewWidthArr[dataid] = screenWidth;
} else {
/*图片的实际尺寸小于屏幕的宽度,就取图片的实际宽高来设为图片的宽高*/
viewHeightArr[dataid] = imgheight;
//把图片的宽度付給数组
viewWidthArr[dataid] = imgwidth;
};
this.setData({
viewWidthArr: viewWidthArr,
viewHeightArr: viewHeightArr
});
// console.log(viewWidthArr);
// console.log(viewHeightArr);
}
})

小程序数组型图片自适应效果的实现(交流QQ群:604788754)的更多相关文章

  1. 小程序数据绑定点赞效果切换(交流QQ群:604788754)

    如果对本例有更好的意见和建议,希望给予留言或是加群跟群主联系,交流学习. WXML: <block wx:for="{{nums}}" wx:for-index='idx' ...

  2. Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作

    Visual Studio 2017中使用正则修改部分内容   最近在项目中想实现一个小工具,需要根据类的属性<summary>的内容加上相应的[Description]特性,需要实现的效 ...

  3. 微信小程序实现标签页滑块效果

    微信小程序实现标签页滑块效果 小程序完整代码: wxml: <view class="swiper-tab"> <view class="swiper- ...

  4. 微信小程序点击图片放大预览

    微信小程序点击图片放大预览使用到 wx.previewImage 接口,可以放大.上/下一张 上代码 wxml代码 <view class='content-img' wx:if="{ ...

  5. 微信小程序简单封装图片上传组件

    微信小程序简单封装图片上传组件 希望自己 "day day up" -----小陶 我从哪里来 在写小程序的时候需要上传图片,个人觉得官方提供的 Uploader 组件不是太好用, ...

  6. 微信小程序里实现跑马灯效果

    在微信小程序 里实现跑马灯效果,类似滚动字幕或者滚动广告之类的,使用简单的CSS样式控制,没用到JS wxml: <!-- 复制的跑马灯效果 --> <view class=&quo ...

  7. 小程序中通过判断id来删除数据,当数据长度为0时,显示隐藏部分(交流QQ群:604788754)

    欢迎加入小程序交流群:本群定期更新在工作种遇到的小知识(交流QQ群:604788754) WXML: <!--遍历循环的数据部分--> <block wx:for="{{d ...

  8. 微信小程序movable-view移动图片和双指缩放

    先从movable-view开始说起吧. movable-view是小程序自定义的组件.其描述为:"可移动的视图容器,在页面中可以拖拽滑动". 官方文档地址:https://mp. ...

  9. web页面和小程序页面实现瀑布流效果

    小程序实现瀑布流效果,和web页面差不多,都要经过以下步骤: 1).加载图片,获取图片的宽高度: 2).根据页面需要显示几列计算每列的宽度: 3).根据图片真实宽度和每列的宽度比,计算出图片需要显示的 ...

随机推荐

  1. DDR2是什么意思

    DDR2DDR2(Double Data Rate 2) SDRAM是由JEDEC(电子设备工程联合委员会)进行开发的新生代内存技术标准,它与上一代DDR内存技术标准最大的不同就是,虽然同是采用了在时 ...

  2. 安装VS提示系统找不到指定路径

    解决办法:删除C:\ProgramData\Package Cache快捷方式

  3. excel在msdn上的说明文档

    Microsoft.Office.Tools.Excel.Worksheet 对象提供和 Excel 主互操作程序集中的 Microsoft.Office.Interop.Excel.Workshee ...

  4. 【SVN】Linux搭建SVN服务

    1.yum安装svn yum install -y subversion 日志打印 Loaded plugins: fastestmirror Determining fastest mirrors ...

  5. 【配置、开发】Spark入门教程[2]

    本教程源于2016年3月出版书籍<Spark原理.机制及应用> ,在此以知识共享为初衷公开部分内容,如有兴趣,请支持正版书籍. Spark为使用者提供了大量的工具和脚本文件,使得其部署与开 ...

  6. requirejs配置代码示例

    requirejs大致用法:通过定义模板define()再通过require()或requirejs()加载模板,paths是路径,如果路径长可以把它赋一个短名称加入ruquire()中,shim是兼 ...

  7. echart提示框内容数据添加单位

    本文为博主原创,转载须注明转载地址: 方法为: tooltip : { trigger: 'axis', formatter: '{a0}:{c0}%' }, legend: { data:['测试' ...

  8. JS进阶系列之作用域链

    在之前写的进阶系列里面,提到了执行上下文在创建阶段,要创建变量对象.确定作用域链还有确定this的指向,本次将重点讲解一下作用域链. JavaScript代码的执行过程 在讲解作用域链之前,首先了解一 ...

  9. shell 判断字符串是否为空

    #!/bin/bash a="" if [ -n "$a" ] then echo "-n $a : 字符串长度不为 0" else ech ...

  10. 转载:oracle RAC集群启动和关闭

    http://www.cnblogs.com/yhfssp/p/8184761.html oracle 11G RAC集群启动和关闭: 1.停止数据库 $srvctl stop database –d ...