当前位置: 首页 > news >正文

uniapp中解决swiper高度自适应内容高度

起因:uniapp中swiper组件swiper 标签存在默认高度是 height: 150px ;高度无法实现由内容撑开,在默认情况下,swiper盒子高度显示总是 150px

swiper组件swiper 标签存在默认高度是 height: 150px ;
在这里插入图片描述

解决办法思路: 动态设置swiper盒子的高度,故需要获取swiper-item盒子中内容的高度,然后动态的将此盒子的高度赋值给swiper盒子的高度

方法:

template中的内容:

<view class="tabBox"><view class="tabScroll"><scroll-view class="scroll-view_H" scroll-x="true" @scroll="scroll"><view class="scroll-view-item_H" v-for="(tab,index) in tabBars" :key="tab.id" :id="tab.id":class="navIndex==index ? 'activite' : ''" @click="checkIndex(index)">{{tab.cat_name}}</view></scroll-view></view><!-- 切换区域  :style="{ height: swiperHeight + 'px' }"  此是动态设置swiper的代码 --><swiper  :style="{ height: swiperHeight + 'px' }" :indicator-dots="false" :autoplay="false" class="swiper" :current="navIndex" ref="swiper" @change="tabChange"><block v-for="(item,index) in tabBars" :key="index"><swiper-item><scroll-view scroll-x="true" class="swiper-scroll" ><!-- <view class="swiper-item">{{itemA.name}}</view> --><view class="swiper-item swiperAAAAA" ><view class="boxTab" v-for="(itemA,indexA) in item.son_list" :key="indexA" @click="goToSort(itemA.cat_name, itemA.cat_fid, itemA.cat_id, 0)"><!-- 图片盒子 --><view class="tabImg"><image :src="itemA.image" alt=""></image></view><!-- 文字 --><view class="tabText">{{itemA.cat_name}}</view></view></view></scroll-view></swiper-item></block></swiper></view>

data中的数据:

<script>
export default{data(){return{navIndex: 0,// tab切换区域的高度swiperHeight:0,// tab切换数组tabBars:[{cat_name:'服装',id:1,son_list:[{image:'./static/search.png',cat_name:'内衣'},{image:'./static/search.png',cat_name:'内裤'},{image:'./static/search.png',cat_name:'袜子'},{image:'./static/search.png',cat_name:'大一'},{image:'./static/search.png',cat_name:'居家服'},{image:'./static/search.png',cat_name:'衬衫'},{image:'./static/search.png',cat_name:'外套'},{image:'./static/search.png',cat_name:'全部分类'},]},{cat_name:'饮食',id:2,son_list:[{image:'./static/search.png',cat_name:'内衣'},{image:'./static/search.png',cat_name:'内裤'},{image:'./static/search.png',cat_name:'袜子'},{image:'./static/search.png',cat_name:'大一'},]},{cat_name:'家电',id:3},{cat_name:'居家',id:4},{cat_name:'洗护',id:5},{cat_name:'婴童',id:6},{cat_name:'餐厨',id:7},{cat_name:'餐厨1',id:8},{cat_name:'餐厨2',id:9},{cat_name:'餐厨3',id:10},],}}
}
</script>
this.$nextTick(() => {// tab切换中swiper高度自适应内容高度uni.createSelectorQuery().select('此次为想获取的元素的id名(#xxx)或者类名(.xxx)').boundingClientRect(rect=>{console.log('打印该盒子的元素',rect.height);// console.log('打印swiperHeight的数值',this.swiperHeight);}).exec()});

以上代码则为获取元素内容高度的方法(直接拿下用即可)

最后结果:

此时swiper的高度已经被重新更改为102px (此数值为动态可变数值,取决于内容高度)
在这里插入图片描述
在这里插入图片描述

到此为止则swiper高度自适应问题就解决了





















     目标不是都能达到的,但它可以作为瞄准点。。

http://www.lryc.cn/news/254366.html

相关文章:

  • Contrast and Generation Make BART a Good Dialogue Emotion Recognizer
  • 图的深度优先搜索(数据结构实训)
  • VUEX使用总结
  • 指定分隔符对字符串进行分割 numpy.char.split()
  • Android12蓝牙框架
  • python文件docx转pdf
  • 9.基于SpringBoot3+I18N实现国际化
  • 27. 深度学习进阶 - 为什么RNN
  • 谈一谈柔性数组
  • <Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux文件管理(1)》(25)
  • 算能PCIe开发环境搭建-一些记录
  • 使用C#和HtmlAgilityPack打造强大的Snapchat视频爬虫
  • c/c++的字符和字符串输入输出
  • 学习设计模式的网站
  • Hadoop学习笔记(HDP)-Part.08 部署Ambari集群
  • IDEA加载阿里Java规范插件
  • 【CSP】202305-1_重复局面Python实现
  • html5各行各业官网模板源码下载(1)
  • 6 Redis缓存设计与性能优化
  • SpringCloud常见问题
  • 实战演练 | 在 Navicat 中格式化日期和时间
  • mysql面试题分享带答案
  • 利用 Python进行数据分析实验(一)
  • Jupyter Notebook工具
  • c语言上机小练(有点难)
  • <JavaEE> 什么是线程安全?产生线程不安全的原因和处理方式
  • Kotlin 中的 also 和 run:选择正确的作用域函数
  • ZKP Understanding Nova (1): MinRoot Example
  • 0基础学java-day14
  • 创建conan包-工具链