详解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 相关文章推荐
HTML代码中标签的全部属性 中文注释说明
Mar 26 Javascript
jQuery开发者都需要知道的5个小技巧
Jan 08 Javascript
深入理解JavaScript系列(2) 揭秘命名函数表达式
Jan 15 Javascript
js确定对象类型方法
Mar 30 Javascript
js正则表达式的使用详解
Jul 09 Javascript
javascript实现根据身份证号读取相关信息
Dec 17 Javascript
Js使用WScript.Shell对象执行.bat文件和cmd命令
Dec 18 Javascript
解决jquery无法找到其他父级子集问题的方法
May 10 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
Oct 27 Javascript
node.js基于mongodb的搜索分页示例
Jan 22 Javascript
vue子父组件通信的实现代码
Jul 09 Javascript
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
Jun 15 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的计数器程序
2006/10/09 PHP
PHP 用数组降低程序的时间复杂度
2009/12/04 PHP
Mysql中分页查询的两个解决方法比较
2013/05/02 PHP
php实现window平台的checkdnsrr函数
2015/05/27 PHP
CodeIgniter视图使用注意事项
2016/01/20 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
2017/06/17 PHP
Laravel中的chunk组块结果集处理与注意问题
2018/08/15 PHP
为Yahoo! UI Extensions Grid增加内置的可编辑器
2007/03/10 Javascript
javascript 支持ie和firefox杰奇翻页函数
2008/07/22 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
实现前后端数据交互方法汇总
2015/04/07 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
使用 stylelint检查CSS_StyleLint
2016/04/28 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
jquery.cookie.js的介绍与使用方法
2017/02/09 Javascript
解决vue项目使用font-awesome,build后路径的问题
2018/09/01 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
vue项目中使用fetch的实现方法
2019/04/25 Javascript
使用typescript改造koa开发框架的实现
2020/02/04 Javascript
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
详解Python中with语句的用法
2015/04/15 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
python3 enum模块的应用实例详解
2019/08/12 Python
Python中的全局变量如何理解
2020/06/04 Python
Python JSON常用编解码方法代码实例
2020/09/05 Python
如何用Python进行时间序列分解和预测
2021/03/01 Python
Luxplus瑞典:香水和美容护理折扣
2018/01/28 全球购物
求职信模板
2014/05/23 职场文书
国庆宣传标语
2014/06/30 职场文书
RPM包方式安装Oracle21c的方法详解
2021/08/23 Oracle
MySQL普通表如何转换成分区表
2022/05/30 MySQL
Python实现仓库管理系统
2022/05/30 Python