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

效果

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

相关推荐
子兮曰4 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰4 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万4 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝4 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋4 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁4 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
汉堡大王95274 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大4 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端
计算机魔术师4 天前
Meta Muse agent 接入 Shopify 的 Shop Pay 实现代理式购物
前端
沙蒿同学4 天前
我用 Go 搭了一条 AI Agent 流水线:从 1 张商品图到一整套淘宝详情页
前端·javascript·后端