微信小程序——动态设置swiper的高度
根据小程序的设定,swiper组件默认高度为150px,无法根据内容来撑高。如果里面的内容固定还好说,直接设置一个高度就可以了。要是里面内容是动态变化的,这个特性使得我们使用这个组件的时候感到诸多不便。
举个例子:
如下这种情况,如果我们不给它设置一个高度,那么它只会在那个150px局部进行滚动了。

那么我们如何动态改变它的高度呢?
情况1:数据每条高度都是一样
原理:获取1条数据的高度*数据的条数。
js代码如下:
const query = wx.createSelectorQuery()
query.select('.class-item').boundingClientRect()
query.exec(function (res) {
console.log(res)
console.log(res[0].height)
console.log(res[0].height * data.t.length)
let sumHeigth = res[0].height * data.t.length;
_this.setData({
swiperHeight: sumHeigth
})
})

返回结果如下:

wxml中赋值:

情况2:数据每条高度不一致
原理:给每条数据一个不同的class,再通过微信的selectAll返回每条的数据的高度,把这些高度相加就是整个swiper的高度了。
wxml代码截图如下:
class-item{{index}}里面的{{index}}是为了给每条数据不同的class

定义一个返回高度的方法:
get_wxml(className, callback) {
wx.createSelectorQuery().selectAll(className).boundingClientRect().exec(callback)
},
js代码如下:
let planItemSelect = '';
for(let i=0;i<data.t.length;i++){ //data.t是ajax请求返回的数据
planItemSelect += `.class-list-block${_this.data.status} .class-item${i},` //_this.data.status表示当前是第几个swiper-item
} let sumHeigth = 0
_this.get_wxml(planItemSelect, (res) => {
for (let i = 0; i < res[0].length; i++) {
sumHeigth += res[0][i].height //获取每条数据的高度并相加
}
_this.setData({
swiperHeight: sumHeigth
})
})
最后赋值跟情况1最后一步是一样的了。
以上就是我动态获取swiper高度的方法了。如果您有更好的处理方法,望不吝赐教哈~~~
微信小程序——动态设置swiper的高度的更多相关文章
- 微信小程序-动态设置背景色navigationBarBackgroundColor的值
查看API: wx.setNavigationBarColor(OBJECT) 代码: wx.setNavigationBarColor({ frontColor: '#ffffff', // 必写项 ...
- 微信小程序wxss设置样式
微信小程序wxss设置样式 对于以前搞客户端开发的来说,有着客户端的逻辑,就是不知道怎么设置样式,把对应的控件显示出来 一.wxml 界面结构wxmL比较容易理解,主要是由八大类基础组件构成: 一.视 ...
- 微信小程序动态生成保存二维码
起源:最近小程序需要涉及到一些推广方面的功能,所以要写一个动态生成二维码用户进行下载分享,写完之后受益良多,特此来分享一下: 一.微信小程序动态生成保存二维码 wxml: <view class ...
- 微信小程序警告设置 enable-flex 属性以使 flexbox 布局生效的解决办法
微信小程序警告设置 enable-flex 属性以使 flexbox 布局生效的解决办法 具体情况: scroll-view 滚动,设置 display:flex 不生效并警告设置 enable-fl ...
- 微信小程序----wxss设置样式
一.wxml 界面结构wxmL比较容易理解,主要是由八大类基础组件构成: 一.视图容器(View Container): 二.基础内容(Basic Content) 组件名 说明 组件名 说明 vie ...
- 微信小程序字体设置
微信小程序css篇----字体(Font) 一.字体:font.属性在一个声明中设置所有字体属性. 可设置的属性是(按顺序): "font-style font-variant font-w ...
- 微信小程序如何设置服务器配置
最近微信小程序在it界火了起来,公司也要求我们开始接触微信小程序,废话不多说直接从配置微信小程序开始 1,首先,登录 https://mp.weixin.qq.com,(这里默认你已经获取到微信小程序 ...
- 微信小程序tabbar设置样式在哪里改
微信小程序tabbar通俗点说就是底部导航,我们一般会配置相关的菜单,方便读者快速导航.tabbar是在项目根目录中的配置文件 app.json 中进行设置:如果小程序是一个多 tab 应用(客户端窗 ...
- 微信小程序:设置启动页面
一.功能描述 微信小程序启动时,首先运行app.js,然后才跳转到第一个页面,也就是启动界面. 设置启动界面,只需要调整app.json的pages信息的位置,放在第一条的page记录便是启动界面
随机推荐
- Ubuntu卸载软件
在终端中输入 sudo dpkg --list 查看已安装的软件,得知需要卸载的软件名为<programme> 再输入 sudo apt-get --purge remove <pr ...
- Java 构造器 通过私有构造器强化不可实例化的能力
只有当类不包含显式的构造器时,编译器才会生成一个公有的.无参的缺省构造器.只要让一个类包含私有构造器,这个类就不能被实例化了.示例: // 工具类 public class UtilityClass ...
- PAT Basic 1020
1020 月饼 (25 分) 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益是多少. 注意 ...
- sencha touch 学习汇总(转)
1.官方网站:http://www.sencha.com/products/touch/ 2.在线文档:http://docs.sencha.com/touch/2.2.1/ 3.在线翻译文档:htt ...
- JSAP107
JSAP107 1.目标 2. 需要考虑的问题: 案例:图片随着鼠标飞兼容性代码 <!DOCTYPE html> <html lang="en"> < ...
- APP中的图片如何长按可以下载并保存图片到相册
直接上图 方式一: 实现方式二: 方式三:
- 我的Linux操作系统的发行版是什么?版本号是什么?
可以用下面的两个命令来查看: cat /etc/*-release hostnamectl 参考资料 ============== How To Find Out My Linux Distribut ...
- 使用Canvas制作画图工具
前 言 JRedu canvas是HTML5中重要的元素之一,canvas元素使用JavaScript在网页上绘制图像,画布是一个矩形区域,我们可以控制其每一个元素,并且canvas拥有多种的绘 ...
- [Python设计模式] 第16章 上班,干活,下班,加班——状态模式
github地址:https://github.com/cheesezh/python_design_patterns 题目 用代码模拟一天的工作状态,上午状态好,中午想睡觉,下午渐恢复,加班苦煎熬. ...
- iOS/MAC 数据压缩与解压缩及常用算法 LZMA、ZLIB
苹果提供的常用的数据压缩算法LZMA.ZLIB.LZ4等: 这三种算法也是苹果建议的,可跨平台使用: 定义如下: /* Commonly-available encoders */ COMPRESSI ...