Vue项目通过scrollIntoView实现锚点滚动

简介: Vue项目通过scrollIntoView实现锚点滚动

实现代码

goAnchor(selector) {
  this.$el.querySelector(selector).scrollIntoView({
      behavior: "smooth",  // 平滑过渡
      block:    "start"  // 上边框与视窗顶部平齐。默认值
  });
}

scrollIntoView

参考: https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollIntoView


完整示例代码

<template>
  <div class="main">
    <!-- 菜单 -->
    <div class="nav">
      <a href="javascript:" @click="goAnchor('#Java')">Java</a>
      <a href="javascript:" @click="goAnchor('#Python')">Python</a>
      <a href="javascript:" @click="goAnchor('#Javascript')">Javascript</a>
    </div>
    <!-- 内容 -->
    <div class="item">
      <div class="title" id="Java">Java</div>
      <div class="content"></div>
    </div>
    <div class="item">
      <div class="title" id="Python">Python</div>
      <div class="content"></div>
    </div>
    <div class="item">
      <div class="title" id="Javascript">Javascript</div>
      <div class="content"></div>
    </div>
  </div>
</template>
<script>
export default {
  methods: {
    // 标签滚动
    goAnchor(selector) {
      this.$el.querySelector(selector).scrollIntoView({
          behavior: "smooth",  // 平滑过渡
          block:    "start"  // 上边框与视窗顶部平齐。默认值
      });
    }
  }
};
</script>
<style scoped>
.main {
  width: 600px;
  margin: 0 auto;
  margin-top: 20px;
}
.nav a {
  text-decoration: none;
  color: #333;
  padding: 0 10px;
  margin: 0 5px;
  background: #9e9e9e;
  line-height: 2;
}
.nav {
  display: flex;
  flex-direction: row;
  justify-content: center;
}
.item{
    margin-top: 20px;
}
.title{
    background: #9e9e9e;
    line-height: 2;
}
.content {
  height: 300px;
  background: #eeeeee;
}
</style>

1.png

相关文章
|
1天前
|
存储 JavaScript
Vue当前时间与接口返回时间的判断
Vue当前时间与接口返回时间的判断
7 0
|
1天前
|
JavaScript
vue生成动态表单
vue生成动态表单
6 0
|
1天前
|
JavaScript 前端开发
Vue生成Canvas二维码
Vue生成Canvas二维码
6 0
|
1天前
|
JavaScript
vue项目切换页面白屏的解决方案
vue项目切换页面白屏的解决方案
5 0
|
1天前
|
XML JavaScript 前端开发
Vue3 项目中怎么使用 jsx——易懂
Vue3 项目中怎么使用 jsx——易懂
5 0
|
1天前
|
JavaScript 前端开发 开发者
new Vue() 发生了什么
new Vue() 发生了什么
8 1
|
1天前
|
JavaScript 容器
使用Vue写一个日期选择器
使用Vue写一个日期选择器
9 1
|
1天前
|
JavaScript
Vue 中如何模块化使用 Vuex
Vue 中如何模块化使用 Vuex
5 0
|
1天前
|
JavaScript 应用服务中间件 nginx
vue中404解决方法
vue中404解决方法
3 0
|
1天前
|
JavaScript 前端开发
vue中nextTick使用以及原理
vue中nextTick使用以及原理
5 0