详解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 OOP类与继承
Nov 15 Javascript
修改好的jquery滚动字幕效果实现代码
Jun 22 Javascript
纯文字版返回顶端的js代码
Aug 01 Javascript
简介JavaScript中search()方法的使用
Jun 06 Javascript
AngularJS通过$location获取及改变当前页面的URL
Sep 23 Javascript
浅谈jquery中next与siblings的区别
Oct 27 Javascript
Web前端开发之水印、图片验证码
Nov 27 Javascript
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
Dec 28 Javascript
详解vue文件中使用echarts.js的两种方式
Oct 18 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
Nov 28 Javascript
原生js实现的移动端可拖动进度条插件功能详解
Aug 15 Javascript
Javascript使用integrity属性进行安全验证
Nov 07 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学习教程之第1天
2008/06/15 PHP
php仿discuz分页效果代码
2008/10/02 PHP
PHP中用正则表达式清除字符串的空白
2011/01/17 PHP
PHP使用curl模拟post上传及接收文件的方法
2016/03/04 PHP
ThinkPHP中order()使用方法详解
2016/04/19 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
详解EventDispatcher事件分发组件
2016/12/25 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
php提高脚本性能的4个技巧
2020/08/18 PHP
JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
2011/01/06 Javascript
javascript 利用Image对象实现的埋点(某处的点击数)统计
2012/12/28 Javascript
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
2013/06/04 Javascript
js查找节点的方法小结
2015/01/13 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
谈谈JavaScript中function多重理解
2015/08/28 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
jQuery.datatables.js插件用法及api实例详解
2016/10/28 Javascript
微信小程序实现的图片保存功能示例
2019/04/24 Javascript
vue中更改数组中属性,在页面中不生效的解决方法
2019/10/30 Javascript
微信小程序吸底区域适配iPhoneX的实现
2020/04/09 Javascript
浅析我对JS延迟异步脚本的思考
2020/10/12 Javascript
解决Antd Table组件表头不对齐的问题
2020/10/27 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
原生js实现自定义滚动条
2021/01/20 Javascript
Python3批量移动指定文件到指定文件夹方法示例
2019/09/02 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
纯CSS3实现圆圈动态发光特效动画的示例代码
2021/03/08 HTML / CSS
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
大学生军训自我评价分享
2013/11/09 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
2014年社区重阳节活动策划方案
2014/09/16 职场文书
公证处委托书
2015/01/28 职场文书
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android
Python帮你解决手机qq微信内存占用太多问题
2022/02/15 Python