基于el-tabs实现锚点功能

<template>
      <div class="top-title">人员档案管理</div>
      <div class="file-main">
        <div class="file-left">
          <el-tabs :tab-position="tabPosition" style="height: 100%" class="file-left-tabs" @tab-click="tabClick">
            <el-tab-pane label="基本信息"></el-tab-pane>
            <el-tab-pane label="任务情况"></el-tab-pane>
            <el-tab-pane label="受奖惩情况"></el-tab-pane>
            <el-tab-pane label="专业等级评定"></el-tab-pane>
            <el-tab-pane label="意见反馈"></el-tab-pane>
            <el-tab-pane label="培训计划"></el-tab-pane>
          </el-tabs>
        </div>
        <div class="file-right">
          <div id="tabs-0" style="height: 500px; background-color: #f00">Content for menu 1...</div>
          <div id="tabs-1" style="height: 500px; background-color: #fff">Content for menu 2...</div>
          <div id="tabs-2" style="height: 600px; background-color: #f00">Content for menu 3...</div>
          <div id="tabs-3" style="height: 500px; background-color: #fff">Content for menu 4...</div>
          <div id="tabs-4" style="height: 500px; background-color: #f00">Content for menu 5...</div>
          <div id="tabs-5" style="height: 500px; background-color: #fff">Content for menu 6...</div>
        </div>
      </div>
</template>
<script setup lang="ts">
import type { TabsInstance } from 'element-plus'
const tabPosition = ref<TabsInstance['tabPosition']>('left')

// tab点击事件
const tabClick = (e: any) => {
  const anchor = document.getElementById('tabs-' + e.index)
  if (anchor) {
// 定位到当前元素可视区域
    anchor.scrollIntoView({ behavior: 'smooth' })
  }
}
</script>
<style lang="scss" scoped>
.file-main {
  padding-top: 12px;
  overflow: hidden;
  display: flex;
  .file-left {
    position: relative;
    width: 140px;
    .file-left-tabs {
        position: fixed;
        z-index: 99;
        top: 20px;
        left: 20px;
    }
  }
  .file-right {
    width: 100%;
    height: calc(100vh - 20px);
    overflow-y: auto;
    background-color: #f0f0f0;
  }
}
</style>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容