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

【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.kler.cn/a/428801.html

相关文章:

  • MySQL面试题2025 每日20道【其四】
  • 大模型最新研究进展分析(市场规模、行业应用、技术趋势、当前挑战)
  • 奉加微PHY6230兼容性:部分手机不兼容
  • 日志收集Day002
  • PCL K4PCS算法实现点云粗配准【2025最新版】
  • lvm快照备份技术详细知识点
  • 40分钟学 Go 语言高并发:【实战】分布式缓存系统
  • Go学习:变量
  • 重生之我在21世纪学C++—关系、条件、逻辑操作符
  • 第三部分:进阶概念 7.数组与对象 --[JavaScript 新手村:开启编程之旅的第一步]
  • 猜数字的趣味小游戏——rand函数、srand函数、time函数的使用
  • 深入探索汽车CMSF功能:工作原理与应用场景详解
  • 基于触觉感知的目标识别技术在智能机器人抓取中的应用综述
  • 项目实现:C++与SQL整合
  • burp(8)-ip伪造及爬虫审计
  • 计算机毕设-基于springboot的实践性教学系统设计与实现(附源码+lw+ppt+开题报告)
  • 证明网络中的流形成一个凸集
  • ETCD的封装和测试
  • 【Python】练习【24-12-8】
  • Mac M1 安装数据库
  • 关于项目二次开发那点事儿
  • 力扣打卡5:LRU缓存
  • Qt 面试题学习14_2024-12-6
  • Docker单机网络:解锁本地开发环境的无限潜能
  • Android 15 平台签名的共享 UID 许可名单
  • SQL面试题——京东SQL面试题 合并数据