详解Vue项目中实现锚点定位


Posted in Javascript onApril 24, 2019

背景

今天在开发限时练-提分加项目的时候,有一个需要锚点定位的需求,而在Vue项目中,使用传统的在a标签的href属性中写id的方法无效,会导致浏览器的地址改变从而跳转到其他页面。

详解Vue项目中实现锚点定位

解决

最终参考vue2.0中怎么做锚点定位改问题下的回答实现了效果。

<template>
<div class="score-preview-container">
 <div class="content-box">
 <div class="content-page-box">
  <GlobalAnalysis :id="#anchor-0" />
  <ErrorMerge :id="#anchor-1" />
  <DoExercise :id="#anchor-2" />
 </div>
 <div class="nav-button-box">
  <span class="nav-button-fix">
  <div class="nav-button" v-for="(item,index) in buttonArr" :key="index" :class="{active : activeBtn == index}" @click="goAnchor('#anchor-'+index,index)">{{item}}</div>
  </span>
 </div>
 </div>
</div>
</template>

<script>
import { mapActions } from "vuex";
import GlobalAnalysis from "./components/GlobalAnalysis.vue";
import ErrorMerge from "./components/ErrorMerge.vue";
import DoExercise from "./components/DoExercise.vue";
export default {
 name: "score-preview",
 components: { GlobalAnalysis, ErrorMerge, DoExercise },
 data() {
 return {
  buttonArr: ["整体分析", "错题整理", "提分训练"],
  activeBtn: 0
 };
 },
 mounted() {
 this.dataInit();
 },
 methods: {
 ...mapActions("v2-score-preview", [
  "fetchClassScoreData",
  "fetchPersonalReportData",
  "fetchErrorQuestionData",
  "fetchExerciseData"
 ]),
 //初始化
 dataInit() {
  this.fetchClassScoreData();
  this.fetchPersonalReportData();
  this.fetchErrorQuestionData();
  this.fetchExerciseData();
 },
 //锚点跳转
 goAnchor(selector, index) {
  this.activeBtn = index;
  document.querySelector("#app-root").scrollTop = this.$el.querySelector(selector).offsetTop;
 }
 }
};
</script>

另外,参考页面内锚点定位及跳转方法总结文章中的第四种方法,发现使用scrollIntoView()方法也能实现锚点定位的效果。

//锚点跳转
goAnchor(selector, index) {
 this.activeBtn = index;
 this.$el.querySelector(selector).scrollIntoView()
}

以上所述是小编给大家介绍的Vue项目中实现锚点定位详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js/jQuery简单实现选项卡功能
Jan 02 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
May 07 Javascript
Javascript函数的参数
Jul 16 Javascript
基于JS实现数字+字母+中文的混合排序方法
Jun 06 Javascript
js添加千分位的实现代码(超简单)
Aug 01 Javascript
手机端实现Bootstrap简单图片轮播效果
Oct 13 Javascript
Angularjs实现分页和分页算法的示例代码
Dec 23 Javascript
JS 实现计算器详解及实例代码(一)
Jan 08 Javascript
Angular17之Angular自定义指令详解
Jan 21 Javascript
详解VUE调用本地json的使用方法
May 15 Javascript
微信小程序实现一个简单swiper代码实例
Dec 30 Javascript
详解Vite的新体验
Feb 22 Javascript
微信小程序中使用echarts的实现方法
Apr 24 #Javascript
基于mpvue小程序使用echarts画折线图的方法示例
Apr 24 #Javascript
详解微信小程序开发用户授权登陆
Apr 24 #Javascript
微信小程序实现的一键拨号功能示例
Apr 24 #Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
Apr 24 #Javascript
微信小程序实现的图片保存功能示例
Apr 24 #Javascript
vue中的inject学习教程
Apr 24 #Javascript
You might like
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
PHP 芝麻信用接入的注意事项
2016/12/01 PHP
php四种定界符详解
2017/02/16 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
简单实现php上传文件功能
2017/09/21 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
2020/07/19 PHP
理解Javascript_13_执行模型详解
2010/10/20 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
jquery实现兼容浏览器的图片上传本地预览功能
2013/10/14 Javascript
在myeclipse中如何加入jquery代码提示功能
2014/06/03 Javascript
javascript中的遍历for in 以及with的用法
2014/12/22 Javascript
浅谈js构造函数的方法与原型prototype
2016/07/04 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
JavaScript获取URL参数的方法之一
2017/03/24 Javascript
详解如何使用Vue2做服务端渲染
2017/03/29 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
Angularjs上传图片实例详解
2017/08/06 Javascript
浅谈箭头函数写法在ReactJs中的使用
2017/08/22 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
详解vue-router的Import异步加载模块问题的解决方案
2020/05/13 Javascript
JavaScript实时更新当前的时间的示例代码
2020/07/15 Javascript
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
Python程序中使用SQLAlchemy时出现乱码的解决方案
2015/04/24 Python
tensorflow 1.0用CNN进行图像分类
2018/04/15 Python
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
基于python实现操作git过程代码解析
2020/07/27 Python
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
公司股权转让协议书
2014/04/12 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
公开承诺书格式
2014/05/21 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
学雷锋日活动总结
2015/02/06 职场文书
CSS 文字装饰 text-decoration & text-emphasis 详解
2021/04/06 HTML / CSS