vue项目中点击顶部导航定位到页面指定位置

一、为导航添加点击事件

在导航的位置加一个@click="handleTabClick",此处的handleTabClick你可以自定义名字,只要和script中的方法调用名字一致就可以。

<v-tabs v-model="tab" color="black" grow height="50px" class="custom-tabs" background-color="#f1f0f0">
        <v-tab class="oneTab" v-for="item in items" :key="item" :value="item" @click="handleTabClick(item)">{{ item
          }}</v-tab>
      </v-tabs>

二、添加ref属性

在你想定位到达的部分添加一个ref属性,你可以自定义它的名字,这里给出的示例是,点击导航中的资源展示和资源查询,定位到教育资源展示和教育资源查询的部分:

<div class="demo-wrapper bg_color--1" ref="resourceDisplay">
      <v-container fluid>
        <v-row>
          <v-col md="12" class="text-center">
            <div class="title-wrapper">
              <h1 class="text-center">教育资源展示</h1>
               .......
</div>

<div class="demo-wrapper inner-pages bg_color--2" ref="resourceQuery">
      <v-container fluid>
        <v-row>
          <v-col md="12" class="text-center">
            <div class="title-wrapper">
              <h1 class="text-center">教育资源查询</h1>
               .......
</div>

三、script中的操作

handleTabClick(tab) {
      // 根据点击的选项卡值来滚动到相应的卡片位置
      switch (tab) {
        case '资源展示':
          this.scrollToCard('resourceDisplay');
          break;
        case '资源查询':
          this.scrollToCard('resourceQuery');
          break;
           //你可以在这里添加新的想定位到达的部分
      }
    },
    scrollToCard(refName) {
      // 使用 Vue 的 $refs 来获取卡片元素,并滚动到其位置
      const cardElement = this.$refs[refName];
      if (cardElement) {
        // 使用原生的 scrollIntoView 方法来滚动到元素位置
        cardElement.scrollIntoView({ behavior: 'smooth', block: 'start' });
      }
    }

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3,可以使用侧边导航栏和导航图标来实现页面导航定位。通过点击左上角的三横向展开导航,可以展开侧边栏,并在点击侧边栏外部或切换路由时关闭导航。同时,侧边导航栏还可以将二级导航直接展开成一级导航,并加入标签筛选文章的功能,从而加快搜索和定位的速度。在交互方面,可以使用不同的动画效果,比如在Technology、Life和Invest采用宽度变化的动画效果,在标签使用整体效果,而在Picture和Storage使用背景颜色改变的效果。侧边栏除了在移动端使用外,还可以在PC端的主页下方使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [vue3重构个人网站1——路由与导航](https://blog.csdn.net/yjltop/article/details/108544947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Vue3点击侧边导航栏完成切换页面内组件(WEB)](https://blog.csdn.net/aifengaopeng/article/details/127476708)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值