详解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 相关文章推荐
jQuery 的全选(全非选)即取得被选中的值使用介绍
Nov 12 Javascript
js判断鼠标左、中、右键哪个被点击的方法
Jan 27 Javascript
JavaScript生成带有缩进的表格代码
Jun 15 Javascript
jQuery中 $ 符号的冲突问题及解决方案
Nov 04 Javascript
jQuery Chosen通用初始化
Mar 07 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
Oct 19 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
Nov 17 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
Apr 19 Javascript
解决ie11 SCRIPT5011:不能执行已释放Script的代码问题
May 05 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
Jul 24 Javascript
小程序实现图片预览裁剪插件
Nov 22 Javascript
vue-cli脚手架的.babelrc文件用法说明
Sep 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数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
2011/10/31 PHP
用PHP实现小写金额转换大写金额的代码(精确到分)
2012/01/10 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
ThinkPHP实现带验证码的文件上传功能实例
2014/11/01 PHP
php+xml编程之xpath的应用实例
2015/01/24 PHP
php获取twitter最新消息的方法
2015/04/14 PHP
PHP构造函数与析构函数用法示例
2016/09/28 PHP
jQuery学习4 浏览器的事件模型
2010/02/07 Javascript
JavaScript获取XML数据附示例截图
2014/03/05 Javascript
21个JavaScript事件(Events)属性汇总
2014/12/02 Javascript
AngularJS 单元测试(一)详解
2016/09/21 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
js中开关变量使用实例
2017/02/24 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/25 Javascript
Vue.js组件高级特性实例详解
2018/12/24 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
Django中反向生成models.py的实例讲解
2018/05/30 Python
python中协程实现TCP连接的实例分析
2018/10/14 Python
python命名空间(namespace)简单介绍
2019/08/10 Python
Python多重继承之菱形继承的实例详解
2020/02/12 Python
python 在sql语句中使用%s,%d,%f说明
2020/06/06 Python
Python自省及反射原理实例详解
2020/07/06 Python
如何利用CSS3制作3D效果文字具体实现样式
2013/05/02 HTML / CSS
纽约家具、家居装饰和地毯店:ABC Carpet & Home
2017/06/21 全球购物
英国性感内衣和睡衣品牌:Bluebella
2018/01/26 全球购物
加拿大国民体育购物网站:National Sports
2018/11/04 全球购物
初中差生评语
2014/12/29 职场文书
比赛主持人开场白
2015/05/29 职场文书
电视新闻稿
2015/07/17 职场文书
JavaScript 实现页面滚动动画
2021/04/24 Javascript
你知道哪几种MYSQL的连接查询
2021/06/03 MySQL
CSS 实现Chrome标签栏的技巧
2021/08/04 HTML / CSS
利用Python多线程实现图片下载器
2022/03/25 Python
Go调用Rust方法及外部函数接口前置
2022/06/14 Golang