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

【uniapp】swiper切换时,v-for重新渲染页面导致文字在视觉上的拉扯问题

问题描述

先用v-for渲染了几个列表,但这几个列表是占同一个位置的,只是通过切换swiper来显示哪个列表显示,也就是为了优化页面切换时候,没有根据swiper的current再更新v-for的数据,但现在就有个问题,怎么隐藏这些列表,并且不占dom。v-if控制的时候,会出现非常明显的重新渲染的闪屏现象。

解决方法

使用position: absolute和clip属性

绝对定位与裁剪:
将元素设置为position: absolute,它就脱离了文档流,不再影响页面布局。然后通过clip属性来裁剪元素,当裁剪区域设置为0时,元素在视觉上就被隐藏了。这种方式下元素仍然在DOM中,但不占据布局空间,并且避免了v - if的重新渲染闪屏问题。

<template><div><swiper :options="swiperOptions"><swiper-item v-for="(list, index) in lists" :key="index"><div :class="{ 'hidden-class': shouldHide(index) }"><!-- 这里渲染列表内容 --><ul><li  v-for="item in list" :key="item.id">{{item.name}}</li></ul></div></swiper-item ></swiper></div>   
</template><script>   
export default {data() {return {currentIndex: 0,lists: [[{id: 1, name: 'List 1-Item 1'},{id: 2, name: 'List 1-Item 2'}],[{id: 3, name: 'List 2-Item 1'},{id: 4, name: 'List 2-Item 2'}]],swiperOptions: {// Swiper的配置选项}};},methods: {shouldHide(index) {return this.currentIndex!== index;}},
};   
</script><style>   .hidden-class{position: absolute;   clip: rect(0, 0, 0, 0);}
</style>
http://www.lryc.cn/news/500235.html

相关文章:

  • 【Android】Compose初识
  • 前端工程化面试题(二)
  • 以攻击者的视角进行软件安全防护
  • 008.精读《Apache Paimon Docs - Table w/o PK》
  • C#实时监控指定文件夹中的动态,并将文件夹中生成的新图片显示在界面上(相机采图,并且从本地拿图)
  • 使用SQLark分析达梦慢SQL执行计划的一次实践
  • 【人工智能】用Python构建高效的自动化数据标注工具:从理论到实现
  • Java --- 注解(Annotation)
  • nodejs作为provider接入nacos
  • SpringBoot3+Micormeter监控应用指标
  • Mybatis-plus 简单使用,mybatis-plus 分页模糊查询报500 的错
  • 2022 年 12 月青少年软编等考 C 语言三级真题解析
  • webpack 题目
  • 【MySQL】视图详解
  • 第一节:ORIN NX介绍与基于sdkmanager的镜像烧录(包含ubuntu文件系统/CUDA/OpenCV/cudnn/TensorRT)
  • 2024-12-04OpenCV视频处理基础
  • D89【python 接口自动化学习】- pytest基础用法
  • 七、docker registry
  • FlightGear+MATLAB+飞行手柄实现实时飞控视景系统
  • 深入 Java 基础 XML:高级特性与最佳实践
  • 【论文阅读】Fifty Years of the ISCA: A Data-Driven Retrospective
  • TVbox源贡献指南
  • qt数据类型定义(包含签名)
  • docker逃逸总结
  • MySql:表的操作
  • LVGL9 开关控件 (lv_switch) 使用指南
  • fastadmin 登录退出忽略中间提示页面
  • 游戏引擎学习第36天
  • 准确率99.9%的离线IP地址定位库 ip2region - python 示例
  • wordpress网站使用Linux宝塔面板和SQL命令行导入导出超过50M限制的数据库