详解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模拟类继承小例子
Jul 17 Javascript
Jquery优化效率 提升性能解决方案
Sep 06 Javascript
高效率JavaScript编写技巧整理
Aug 23 Javascript
jquery如何判断表格同一列不同行input数据是否重复
May 14 Javascript
浅析webapp框架AngularUI的demo
Dec 21 Javascript
jquery实现不包含当前项的选择器实例
Jun 25 Javascript
基于jQuery实现交互体验社会化分享代码附源码下载
Jan 04 Javascript
javascript中使用未定义变量或值的情况分析
Jul 19 Javascript
深入理解JS实现快速排序和去重
Oct 17 Javascript
怎样判断jQuery当前元素是隐藏还是显示
Nov 23 Javascript
js原生代码实现轮播图的实例讲解
Jul 28 Javascript
JS块级作用域和私有变量实例分析
May 11 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 curl 伪造IP来源的实例代码
2012/11/01 PHP
php excel reader读取excel内容存入数据库实现代码
2012/12/06 PHP
浅析51个PHP处理字符串的函数
2013/08/02 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
php强大的时间转换函数strtotime
2016/02/18 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
比较新旧两个数组值得增加和删除的JS代码
2013/10/30 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
如何实现移动端浏览器不显示 pc 端的广告
2015/10/15 Javascript
JS中如何比较两个Json对象是否相等实例代码
2016/07/13 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
Node.js五大应用性能技巧小结(必须收藏)
2017/08/09 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
Vue组件之单向数据流的解决方法
2018/11/10 Javascript
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
2019/04/29 NodeJs
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
js实现提交前对列表数据的增删改查
2020/01/16 Javascript
Js和VUE实现跑马灯效果
2020/05/25 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
vue-simple-uploader上传成功之后的response获取代码
2020/09/07 Javascript
django 修改server端口号的方法
2018/05/14 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
python使用udp实现聊天器功能
2018/12/10 Python
Python设计模式之策略模式实例详解
2019/01/21 Python
在VS2017中用C#调用python脚本的实现
2019/07/31 Python
利用python生成照片墙的示例代码
2020/04/09 Python
2014年母亲节寄语
2014/05/07 职场文书
销售目标责任书
2014/07/23 职场文书
运动会稿件100字
2014/09/24 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
党员个人剖析材料
2014/09/30 职场文书
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android