详解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插件开发之实现jquery手风琴功能分享
Mar 10 Javascript
javaScript实现滚动新闻的方法
Jul 30 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
Nov 06 Javascript
JS使用post提交的两种方式
Dec 03 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
Aug 31 Javascript
js格式化时间的简单实例
Nov 27 Javascript
Angular使用$http.jsonp发送跨站请求的方法
Mar 16 Javascript
vue 实现在函数中触发路由跳转的示例
Sep 01 Javascript
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 jQuery
vue中使用cookies和crypto-js实现记住密码和加密的方法
Oct 18 Javascript
Javascript中弹窗confirm与prompt的区别
Oct 26 Javascript
vue配置接口域名方法总结
May 12 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
为php4加入动态flash文件的生成的支持
2006/10/09 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
Laravel 5.5 异常处理 &amp; 错误日志的解决
2019/10/17 PHP
WordPress 照片lightbox效果的运用几点
2009/06/22 Javascript
如何创建一个JavaScript弹出DIV窗口层的效果
2013/09/25 Javascript
JavaScript定义类和对象的方法
2014/11/26 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
js简单实现调整网页字体大小的方法
2016/07/23 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
canvas绘制环形进度条
2017/02/23 Javascript
Bootstrap入门教程一Hello Bootstrap初识
2017/03/02 Javascript
layui文件上传实现代码
2017/05/20 Javascript
Node.js学习之地址解析模块URL的使用详解
2017/09/28 Javascript
Angular4集成ng2-file-upload的上传组件
2018/03/14 Javascript
nodeJS模块简单用法示例
2018/04/21 NodeJs
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
使用apifm-wxapi模块中的问题及解决方法
2019/08/05 Javascript
原生JS实现萤火虫效果
2020/03/07 Javascript
Python查询IP地址归属完整代码
2017/06/21 Python
Django+JS 实现点击头像即可更改头像的方法示例
2018/12/26 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
python 读写文件包含多种编码格式的解决方式
2019/12/20 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
11月升旗仪式讲话稿
2014/02/15 职场文书
家长写给孩子的评语
2014/04/18 职场文书
科技节口号
2014/06/19 职场文书
运动会标语
2014/06/21 职场文书
社区护士演讲稿
2014/08/27 职场文书
秋菊打官司观后感
2015/06/03 职场文书
红高粱观后感
2015/06/10 职场文书
Python机器学习之KNN近邻算法
2021/05/14 Python
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python