基于n-scrollbar,滚动到列表指定位置

前言

当用户点击外部时,根据表示将滚动条滚动到指定数据位置,从而方便用户查看相关信息。下面以列表为例。

逻辑

  1. 使用 nextTick() 确保 DOM 已经更新
  2. 直接通过 document.querySelector 查找目标元素
  3. 使用 scrollIntoView 方法实现平滑滚动到视图中央

实现

html 复制代码
<n-button @clcik="scrollToItem(5)">跳转到第五条数据</n-button>
<n-scrollbar style="max-height: 43vh;"> 
    <div class="work-item" v-for="(item, index) in workList" :key="index">
        <div class="row"> 
            <div class="row-item"> 
                <div class="title">{{ item.plateNo || '--' }}</div> 
                <div class="workLinkName">({{ item.jobTypeName || '--' }})</div> 
            </div> 
        </div> 
    </div>
</n-scrollbar>
js 复制代码
/**
 *滚动到指定索引的元素
 *@params index 数据所在列表下标
 */
function scrollToItem(index) {
  nextTick(() => {
    if (workList.value.length > index) {
      const targetElement = document.querySelector('.work-item:nth-child(' + (index + 1) + ')');
      if (targetElement) {
        targetElement.scrollIntoView({
          behavior: 'smooth',
          block: 'center'
        });
      }
    }
  });
}

效果

滚动条默认位置为开头,点击"跳转到第五条数据"按钮后,效果如下:

相关推荐
SuperEugene18 小时前
Vue3 + Element Plus 表格实战:批量操作、行内编辑、跨页选中逻辑统一|表单与表格规范篇
开发语言·前端·javascript
极梦网络无忧18 小时前
基于 Vite + Vue3 的组件自动注册功能
前端·javascript·vue.js
Predestination王瀞潞18 小时前
5.4.3 通信->WWW万维网内容访问标准(W3C):WWW(World Wide Web) 协议架构(分层)
前端·网络·网络协议·架构·www
爱学习的程序媛18 小时前
【Web前端】优化Core Web Vitals提升用户体验
前端·ui·web·ux·用户体验
zabr18 小时前
花了 100+ 篇笔记,我整理出 了一套 AI Agent 工程完全指南
前端·后端·agent
软弹19 小时前
深入理解 React Ref 机制:useRef 与 forwardRef 的协作原理
前端·javascript·react.js
YaHuiLiang19 小时前
Ai Coding浪潮下的前端:“AI在左,裁员在右”
前端
雪碧聊技术19 小时前
前端vue代码架子搭建
前端·javascript·vue.js·前端项目代码框架搭建
爱学习的程序媛19 小时前
【Web前端】前端用户体验优化全攻略
前端·ui·交互·web·ux·用户体验
han_19 小时前
JavaScript设计模式(二):策略模式实现与应用
前端·javascript·设计模式