详解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 弹出框口并返回值的两种常用方法
Dec 30 Javascript
node.js 一个简单的页面输出实现代码
Mar 07 Javascript
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
Jan 23 Javascript
jQuery中on()方法用法实例详解
Feb 06 Javascript
基于javascript实现动态时钟效果
Aug 18 Javascript
jQuery实现简单的tab标签页效果
Sep 12 Javascript
学习vue.js中class与style绑定
Dec 03 Javascript
AngularJS实现表单验证功能
Jan 09 Javascript
JS实现键值对遍历json数组功能示例
May 30 Javascript
javascript中floor使用方法总结
Feb 02 Javascript
过滤器vue.filters的使用方法实现
Sep 18 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
May 28 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 EOT定界符的使用详解
2008/09/30 PHP
自定义php类(查找/修改)xml文档
2013/03/26 PHP
深入file_get_contents与curl函数的详解
2013/06/25 PHP
php防止伪造的数据从URL提交方法
2014/06/27 PHP
php jsonp单引号转义
2014/11/23 PHP
php实现mysql备份恢复分卷处理的方法
2014/12/26 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
2019/05/27 PHP
javascript 词法作用域和闭包分析说明
2010/08/12 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
node.js中的require使用详解
2014/12/15 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
2015/02/11 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
jQueryUI中的datepicker使用方法详解
2016/05/25 Javascript
jQuery实现的瀑布流加载效果示例
2016/09/13 Javascript
AngularJS Controller作用域
2017/01/09 Javascript
分享一个精简的vue.js 图片lazyload插件实例
2017/03/13 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
2017/11/15 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
[09:23]国际邀请赛采访专栏:iG战队VK,Tongfu战队Cu
2013/08/05 DOTA
[01:21]DOTA2 新英雄 森海飞霞
2020/12/18 DOTA
Python在groupby分组后提取指定位置记录方法
2018/04/20 Python
python实现随机梯度下降法
2020/03/24 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
python装饰器原理与用法深入详解
2019/12/19 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
国旗下的演讲稿
2014/05/08 职场文书
信息合作协议书
2014/10/09 职场文书
党员个人年度总结
2015/02/14 职场文书
我的中国梦主题班会
2015/08/14 职场文书
运动会主持人开幕词
2016/03/04 职场文书
Python如何把不同类型数据的json序列化
2021/04/30 Python
解决WINDOWS电脑开机后桌面没有任何图标
2022/04/09 数码科技