微信小程序swiper的自适应高度

您所在的位置:网站首页 怎么更换小程序里的图片 微信小程序swiper的自适应高度

微信小程序swiper的自适应高度

2024-07-11 17:08| 来源: 网络整理| 查看: 265

小程序组件swiper需要指定固定高度,但在某些场景中我们需要动态设置swiper的高度以完整展示swiper中的内容,比如高度不同的图片,笔者最近项目中的日历组件(31号有时会多出一行)等等,如何使swiper组件自适应高度呢?

翻阅了一些网上的例子,一般的解决方法是通过设置style.height来解决

Page({ data: { style: '' }, onReady(){ this.setData({style: 'height: 100px'}) } }) 问题:状态丢失

直接设置样式可以动态设置高度,但这样做的不好之处在于会重新渲染结构,导致之前设置的状态丢失,比如我们在日历中选中的日期

我们的需求是,1. 动态设置swiper高度,2. 不丢失之前的状态

一番折腾过后,发现这条路是个死胡同,不能解决问题。

解决: CSS变量

后来发现使用css变量也能够动态改变样式,抱着试一试的想法

模板

样式

.box{ --box-height: 400px; --append-height: 0; width: 100vw; height: calc(var(--box-height) + var(--append-height)) } .container{ height: 100%; width: 100%; }

js

Page({ data: { boxStyle: '' }, onReady(){ if (...) { this.setData({boxStyle: '--append-height: 50px'}) } else { this.setData({boxStyle: '--append-height: 0'}) } } })

上述设置,居然能够完美的实现项目需求,现在项目正在上线中,等待测试出bug,哈哈

欢迎关注github项目 关注下面的小程序查看最新的DEMO示例



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3