基于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'
        });
      }
    }
  });
}

效果

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

相关推荐
上单带刀不带妹6 分钟前
前端安全问题怎么解决
前端·安全
Fly-ping9 分钟前
【前端】JavaScript 的事件循环 (Event Loop)
开发语言·前端·javascript
SunTecTec32 分钟前
IDEA 类上方注释 签名
服务器·前端·intellij-idea
在逃的吗喽1 小时前
黑马头条项目详解
前端·javascript·ajax
袁煦丞1 小时前
有Nextcloud家庭共享不求人:cpolar内网穿透实验室第471个成功挑战
前端·程序员·远程工作
小磊哥er2 小时前
【前端工程化】前端项目开发过程中如何做好通知管理?
前端
拾光拾趣录2 小时前
一次“秒开”变成“转菊花”的线上事故
前端
你我约定有三2 小时前
前端笔记:同源策略、跨域问题
前端·笔记
JHCan3332 小时前
一个没有手动加分号引发的bug
前端·javascript·bug
pe7er2 小时前
懒人的代码片段
前端