vue 滚动条滚动到列表的某个区域时,将(负责的、参与的、管理的)区域的title固定到头部
1、html
1 <div :id="item.id" class="list-item" v-for="(item, index) in okrTableDate" :key="index"> 2 <p class="bold" :class="{ 'is-fixed': isFixedFlag1 && item.id === 'responsible' }" v-if="item.id === 'responsible'">{{item.titleName}}</p> 3 <p class="bold" :class="{ 'is-fixed': isFixedFlag2 && item.id === 'managed', 'top-fixed1': !fullScreenFlag, 'top-fixed2': fullScreenFlag }" v-else-if="item.id === 'managed'">{{item.titleName}}</p> 4 <p class="bold" :class="{ 'is-fixed': isFixedFlag3 && item.id === 'participating', 'top-fixed1': !fullScreenFlag, 'top-fixed2': fullScreenFlag }" v-else-if="item.id === 'participating'">{{item.titleName}}</p> 5 <p class="bold" v-else>{{item.titleName}}</p> 6 ............... 7 </div>
2、监听滚动条滚动事件
1 mounted () { 2 document.querySelector('#objectiveBox').addEventListener('scroll', this.handleScroll) 3 }
3、methods
1 handleScroll () { 2 let offsetHeight1 = 0 3 let offsetHeight2 = 0 4 if (document.querySelector('#objectiveBox') && document.querySelector('#responsible')) { 5 let scrollTop = document.querySelector('#objectiveBox').scrollTop 6 let offsetHeight = document.querySelector('#responsible').offsetHeight 7 offsetHeight1 = offsetHeight 8 if (scrollTop < offsetHeight && scrollTop) { 9 this.isFixedFlag1 = true 10 } else { 11 this.isFixedFlag1 = false 12 } 13 } 14 if (document.querySelector('#objectiveBox') && document.querySelector('#managed')) { 15 let scrollTop = document.querySelector('#objectiveBox').scrollTop 16 let offsetHeight = document.querySelector('#managed').offsetHeight 17 offsetHeight2 = offsetHeight 18 if ((scrollTop - offsetHeight1) > 0 && scrollTop - offsetHeight1 < offsetHeight && scrollTop) { 19 this.isFixedFlag2 = true 20 } else { 21 this.isFixedFlag2 = false 22 } 23 } 24 if (document.querySelector('#objectiveBox') && document.querySelector('#participating')) { 25 let scrollTop = document.querySelector('#objectiveBox').scrollTop 26 let offsetHeight = document.querySelector('#participating').offsetHeight 27 if ((scrollTop - offsetHeight1 - offsetHeight2) > 0 && (scrollTop - offsetHeight1 - offsetHeight2) < offsetHeight && scrollTop) { 28 this.isFixedFlag3 = true 29 } else { 30 this.isFixedFlag3 = false 31 } 32 } 33 }

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现