微信小程序-横向轮播时,轮播高度随内容高度动态撑开

在使用小程序轮播图过程中,发现轮播滑动高度是固定的,当活动到第二页时,会出现很大一块空白内容,视觉效果比较差
实现效果:

第一页:

第二页:

轮播高度计算

复制代码
每页轮播高度 = 当页图片总高度 + 总间距

图片设计图显示尺寸(px):105 × 108
设计图标准尺寸(px):375
屏幕宽度(px):screenWidth
屏幕与设计图分辨率比率: ratio = screenWidth / 375
图片实际展示尺寸:imgWidth = 105 * ratio,  imgHeight = 108 * ratio

已知图片间距 space = 12 px
每页轮播图片展示行数 row

图片总高度 = imgHeight * row
总间距 = (row - 1) * 12px

① 获取screenWidth,计算屏幕与设计图分辨率比率 ratio

javascript 复制代码
let windowInfo = wx.getWindowInfo()
let ratio = windowInfo.screenWidth / 375
this.setData({
	ratio: ratio
})

② 计算轮播图片展示行数 row,设置首页轮播高度swiperHeight

javascript 复制代码
let imgHeight = 108
let row = Math.ceil(this.data.list[0].length / 3) // 计算单页轮播行数 
let swiperHeight = row * imgHeight *  +  (row - 1) * 12
this.setData({
	currentSwiper: 0, // 默认轮播下标
	swiperHeight: swiperHeight // 首页轮播高度
})
html 复制代码
<swiper 
	class="my-swipe" 
	indicator-dots="{{false}}" 
	interval="{{5000}}"
	style="height: {{swiperHeight}}px;"
	current="{{currentSwiper}}"
	bindchange="onChange"
>
</swiper>

③ 轮播图滑动时,重新计算高度

javascript 复制代码
onChange() {
	let currentIndex = el.detail.current
	let row = Math.ceil((this.data.list[currentIndex].length / 3))
	let swiperHeight = row * 108 * this.data.ratio + (12 * (row - 1))
	this.setData({
		swiperHeight: swiperHeight
	})
}
相关推荐
2601_949950633 小时前
成绩提升不靠盲目刷题:用练题簿找准真正的薄弱知识点
学习·小程序·刷题·小程序推荐
今日热点4 小时前
微信小程序主体变更公证全流程实操解析:场景条件、材料规范、驳回避坑与Python校验脚本实现
python·微信小程序·小程序
Buke..4 小时前
【小程序逆向】某游快爆 AI 逆向 sign参数:AI 辅助分析与 MCP 工具链实战
前端·人工智能·爬虫·python·小程序·notepad++
T01156188 小时前
艺培场馆课时预约小程序用户端 & 后台联动踩坑上篇(预约、课时、缓存、消息、学员端自身问题)
java·缓存·小程序·bug·全栈项目实战手记·艺培课时系统‘’
fthux9 小时前
下一次提交,隔了八年:掘金小程序回来了
微信小程序·开源·github
维双云10 小时前
宠物门店小程序怎么搭?从预约到复购的完整思路。
小程序·宠物
云云只是个程序马喽1 天前
短剧/推文/AI创作变现小程序完整落地方案:自研vs成熟系统成本对比+全流程实现指南
人工智能·小程序
ZiYiMing1 天前
miniprogram-automator 在 2026 年还能用吗?——官方 SDK 三处硬伤的排查与重建
微信小程序
拖孩1 天前
一个人 + AI 做的小程序,上线 15 天赚了 10 块 5
前端·后端·微信小程序