微信小程序swiper图片尺寸_微信小程序 swiper 轮播图 高度自适应
微信小程序 swiper 轮播图 高度自适应
发布时间:2018-07-20 15:34,
浏览次数:588
, 标签:
swiper
小程序中使用swiper 组件 ,实现轮播图高度自适应效果。
先上最终实现效果图
先看一下微信官方文档介绍 swiper 组件
https://developers.weixin.qq.com/miniprogram/dev/component/swiper.html
代码部分
wxml:
autoplay='{{true}}' interval="{{5000}}" duration="{{500}}" circular="{{true}}"
bindchange='bindchange' style="height:{{imgheights[current]}}rpx;">
wx:for="{{imgUrls}}">
class='image-view'
style="height:{{imgheights[current]}}rpx;width:{{imgwidth}}rpx;"
bindload="imageLoad" data-src='{{item}}'>
js:
Page({ data: { imgheights: [], current: 0, imgwidth: 750, imgUrls: [
'http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg',
'http://img06.tooopen.com/images/20160818/tooopen_sy_175866434296.jpg',
'https://img3.doubanio.com/view/photo/l/public/p2494946035.webp',
'http://img06.tooopen.com/images/20160818/tooopen_sy_175833047715.jpg', ], },
imageLoad: function (e) { //获取图片真实宽度 var imgwidth = e.detail.width, imgheight =
e.detail.height, src = [], //宽高比 ratio = imgwidth / imgheight;
console.log(e.target.dataset['src']) src.push(e.target.dataset['src'])
console.log(src) //计算的高度值 var viewHeight = 750 / ratio; var imgheight =
viewHeight var imgheights = this.data.imgheights //把每一张图片的高度记录到数组里
imgheights.push(imgheight) this.setData({ imgheights: imgheights, }) },
bindchange: function (e) { this.setData({ current: e.detail.current }) }, })
思路是这样滴,,,在图片 加载时通过 bindload imageLoad 将每张图片的 宽高取出,计算好高度,存入数组。swiper 组件
通过bindchange 监听图片切换 将当前图片的在数组中的位置(swiper组件中的位置)赋值 current ,以此动态的改变 页面
图片和swiper的高度。。。 但是,无意中发现一个问题,imageLoad 中打印 图片的 src 发现
顺序有时和图片真实的顺序是不一致的,把大图放在数组前面,但是却是第三个第四个加载出来的。这就坑了,,导致加载出来计算的图片高度数组顺序和真实的不一致。bindload
获取的图片顺序不正确,不知道是不是因为图片资源大小的缘故,故加了一个参数,严谨一点。。如果接口提供的参数里返回了图片的原始宽高 也可以不用这么做。
在imageLoad中打印 index 哇 果然 顺序是有误的。
最终代码
autoplay='{{true}}' interval="{{5000}}" duration="{{500}}" circular="{{true}}"
bindchange='bindchange' style="height:{{imgheights[current]}}rpx;">
wx:for="{{imgUrls}}" wx:key="{{index}}">
src="{{item}}" class='image-view'
style="height:{{imgheights[current]}}rpx;width:{{imgwidth}}rpx;"
bindload="imageLoad" data-src='{{item}}' data-index='{{index}}'>
Page({ data: { imgheights: [], current: 0, imgwidth: 750, imgUrls: [
'https://img3.doubanio.com/view/photo/l/public/p2494946035.webp',
'http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg',
'http://img06.tooopen.com/images/20160818/tooopen_sy_175866434296.jpg',
'http://img06.tooopen.com/images/20160818/tooopen_sy_175833047715.jpg', ], },
imageLoad: function (e) { //获取图片真实宽度 var imgwidth = e.detail.width, imgheight =
e.detail.height, //宽高比 ratio = imgwidth / imgheight; //计算的高度值 var viewHeight =
750 / ratio; var imgheight = viewHeight var imgheights = this.data.imgheights
//把每一张图片的高度记录到数组里 imgheights[e.target.dataset['index']] = imgheight;// 改了这里
赋值给当前 index this.setData({ imgheights: imgheights, }) }, bindchange: function
(e) { this.setData({ current: e.detail.current }) }, })
这次没什么问题了 把图片较大的放在数组前面,检验一下就知道了
微信小程序swiper图片尺寸_微信小程序 swiper 轮播图 高度自适应相关推荐
- 微信小程序swiper图片尺寸_微信小程序之swiper轮播图中的图片自适应高度的方法...
小程序中的轮播图很简单,官方都有例子的,但是唯一的缺陷就是swiper是固定死的150px高度,这样如果传入的图片大于这个高度就会被隐藏.辣么,怎样让图片自适应不同分辨率捏. 我的思路是:获取屏幕宽度 ...
- 微信小程序swiper图片尺寸_微信小程序之swiper轮播图中的图片自适应高度
小程序中的轮播图很简单,官方都有例子的,但是唯一的缺陷就是swiper是固定死的150px高度,这样如果传入的图片大于这个高度就会被隐藏.辣么,怎样让图片自适应不同分辨率捏. 我的思路是:获取屏幕宽度 ...
- 轮播图高度自适应_干货!弘成教你写轮播图全自动适应封装代码
点击蓝字 关注我们 在弘成教育任UI讲师,带了几十个班数百个学生了,我发现学生们最头疼的不是网站界面的设计,各种网站的设计,专题页,详情页,店铺装修,他们都能设计得漂漂亮亮.也不是HTML+CSS的静 ...
- 微信小程序swiper图片尺寸_微信小程序 - swiper 高度自适应
我这边开发用的是 wepy,代码风格跟小程序原生的不太一样,下面代码是依照小程序的代码风格整理之后的,可能有不同或遗漏的地方,但这都不重要,注意领会精神! 原理: 获取设备宽度 获取 swiper 内 ...
- 微信小程序swiper图片尺寸_微信小程序swiper组件中的img自定义尺寸(自适应)
swiper组件里的image默认宽度320,高度200,这无法满足我们的需求,就需要我们自己修改尺寸和属性了,这里记录下自己的解决办法.首先给image的width设置为100%,此时图片的大小会根 ...
- 轮播图高度自适应_【2020顶会NIPS】用于交通预测的自适应图卷积循环网络
就idea来说,这篇文章整体感觉亮点只有参数分解一处,其他的自适应网络结构,之前已经有文章研究,如果在计算方面有需求,或者是网络节点较多的应用可以参考这篇文章. Adaptive Graph Conv ...
- 微信小程序轮播图高度与图片高度不匹配问题
微信小程序轮播图高度与图片高度不匹配问题 在微信小程序项目中,为了美观给page设置了padding值,然后让轮播图里面的图片宽度为100%,高度widthFix自适应,出现了如下问题:指示器位置不对 ...
- 微信小程序 swiper轮播图高度宽度自适应(解决轮播图图片显示不全问题)
之前从来没有接触过前端,最近开始学习微信小程序,因为没有基础所以学起来有点难度.在学习这个swiper标签的时候遇到了一些问题.首先一个问题就是轮播图中的图片显示不全,尽管已经给image设置成了wi ...
- 小程序轮播图高度适配
小程序轮播图适配 在开发小程序轮播图时,我遇到一下问题:小程序轮播图的导航栏总是不能放在正确的位置上,思考再三,我发现问题的原因是:当我们设置image的mode="widthFix&quo ...
最新文章
- dubbo 配置文件详解
- python获取url参数 类继承_python之类的继承
- java基础提升篇:深入剖析Java中的装箱和拆箱
- Oracle资源管理器(二)-- 创建和使用数据库资源计划
- hadoop 配置文件简析
- 一位程序员工作10年总结的13个忠告
- VB小技巧 文本框中屏蔽系统右键菜单用自定义菜单代替自带右键菜单
- web多线程之webworkers
- HTML5模拟衣服撕扯动画
- mysql性能优化金字塔法则 下载_千金良方:MySQL性能优化金字塔法则 pdf版
- Android Q适配攻略(五)(存储权限变更)
- OneDrive,在云端
- Wechat----wxs
- 【Linux】修改文件或文件夹权限的命令
- 五句话介绍Hessian序列化
- S32K系列S32K144学习笔记——UART2
- 成功解决代码运行的时候出现的warnings警告问题
- nginx在Linux的安装和简单使用
- screen显示窗口查看历史输出
- led数码显示控制plc实验_实验三 LED数码显示控制 PLC实验报告
热门文章
- js回调函数(超详细)
- ajax 返回的数据有换行符,前端如何展示出来?
- java获取mysql的数据_【助教】Java获取数据库数据展示
- *args和**kwargs
- vivoY73s和vivoY70s的区别 vivoY73s和vivoY70s哪个值得入手
- 【SVN】svn解决冲突
- 使用linux创建文件系统,linux创建文件系统
- 游戏声效知多少-Unity
- 农耕不再靠“天意”,中科赛诺用百度飞桨打造智能“地脸识别”
- ffmpeg configure中文帮助文档