关于uniapp中swiper组件的固定高度如何根据盒子内容进行改变
·
在写项目的时候,发现在swiper页面中加入写好的组件后,可能只显示轮播图,也就是大概150px的高度,这是因为swiper默认高度为150px,我上网查询几种方法,发现最好的还根据盒子高度动态绑定高度这一种兼容性最好。
首先,定义一个变量:
// 获取默认高度 const swiperHeight=ref(0) // 滑块的高度(单位px)其次,查询uniapp官网,使用
let viewS=uni.createSelectorQuery().select('.home-data');api获取到dom的属性值,注意细节就是在页面渲染以后在进行拉取,否则可能为空。
// 动态获取swiper高度 onReady(()=>{ let viewS=uni.createSelectorQuery().select('.home-data'); viewS.boundingClientRect().exec(res=>{ swiperHeight.value=res[0].height }) })
相关api的意思与语法作用,解释如下:
onReady(()=>{ ... }):
这个函数是 UniApp 的生命周期函数之一。onReady会在页面加载完成后被调用,确保所有的 DOM 元素都已渲染,可以进行相关的 DOM 操作。
let viewS=uni.createSelectorQuery().select('.home-data');:
uni.createSelectorQuery(): 这是一个用于查询 DOM 节点的 API。可以帮助开发者获取页面上某些元素的信息,比如位置、尺寸等。.select('.home-data'): 选择 class 为home-data的元素,返回一个查询对象viewS。
viewS.boundingClientRect().exec(res=>{ ... });:
boundingClientRect(): 这个方法用于获取选中元素的位置信息,包括宽度、高度和位置等。.exec(...): 执行查询,并在查询完成后执行传入的回调函数。查询结果会作为参数res传递给回调函数。
最后,注意从uniapp中引入onReady生命周期钩子...
import {onReady} from '@dcloudio/uni-app'
如果有跟好的想法,欢迎指导
更多推荐



所有评论(0)