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

效果

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

相关推荐
蒙特卡洛的随机游走10 小时前
Spark的宽依赖与窄依赖
大数据·前端·spark
共享家952710 小时前
QT-常用控件(多元素控件)
开发语言·前端·qt
葱头的故事10 小时前
将传给后端的数据转换为以formData的类型传递
开发语言·前端·javascript
_233310 小时前
vue3二次封装element-plus表格,slot透传,动态slot。
前端·vue.js
jump68010 小时前
js中数组详解
前端·面试
崽崽长肉肉10 小时前
iOS 基于Vision.framework从图片中提取文字
前端
温宇飞10 小时前
Web Abort API - AbortSignal 与 AbortController
前端
Tomoon10 小时前
前端开发者的全栈逆袭
前端
Filotimo_11 小时前
2.CSS3.(3).html
前端·css3