详解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 相关文章推荐
JavaScript入门教程(2) JS基础知识
Jan 31 Javascript
JavaScript四种调用模式和this示例介绍
Jan 02 Javascript
文本框水印提示效果的简单实现代码
Feb 22 Javascript
超棒的响应式布局jQuery插件Freetile.js
Nov 17 Javascript
JS中创建函数的三种方式及区别
Mar 13 Javascript
详解JavaScript中双等号引起的隐性类型转换
May 30 Javascript
JavaScript 实现的checkbox经典实例分享
Oct 16 Javascript
Bootstrap简单表单显示学习笔记
Nov 15 Javascript
Angular.js基础学习之初始化
Mar 10 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
Sep 19 Javascript
IntelliJ IDEA 安装vue开发插件的方法
Nov 21 Javascript
JS内置对象和Math对象知识点详解
Apr 03 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
PHP5与MySQL数据库操作常用代码 收集
2010/03/21 PHP
PHP为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
PHP把小数转成整数3种方法
2014/06/30 PHP
php实现的css文件背景图片下载器代码
2014/11/11 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
利用webqq协议使用python登录qq发消息源码参考
2013/04/08 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
2013/06/09 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
javascript使用appendChild追加节点实例
2015/01/12 Javascript
JavaScript简单表格编辑功能实现方法
2015/04/16 Javascript
最新最热最实用的15个jQuery插件汇总
2015/07/05 Javascript
javaScript实现滚动新闻的方法
2015/07/30 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
基于JavaScript实现全屏透明遮罩div层锁屏效果
2016/01/26 Javascript
JSON 对象未定义错误的解决方法
2016/09/29 Javascript
BootStrap网页中代码显示用法详解
2016/10/21 Javascript
常用的javascript设计模式
2017/01/11 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
JavaScript内存泄漏的处理方式
2017/11/20 Javascript
解决layui轮播图有数据不显示的情况
2019/09/16 Javascript
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
Django-migrate报错问题解决方案
2020/04/21 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
加拿大女装网上购物:Reitmans
2016/10/20 全球购物
《分一分》教学反思
2014/04/13 职场文书
幼儿园端午节活动方案
2014/08/25 职场文书
韩语专业职业生涯规划范文:成功之路就在我们脚下
2014/09/11 职场文书
机关工会工作总结2015
2015/05/26 职场文书
JavaScript实现栈结构详细过程
2021/12/06 Javascript
Python学习之包与模块详解
2022/03/19 Python
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL