原文关注公众号,后台里留言可进行提问,可在后台留言向作者提问解答问题!

https://mp.weixin.qq.com/s?__biz=Mzg3NTAzMzAxNA==&mid=2247484254&idx=1&sn=361bbb2113be3eeda3802f0a805c5705&chksm=cec6fb87f9b1729174e3ae66bf9693207386256c964499c098fb8a6cc14b4ba266bc271073a3&token=689492939&lang=zh_CN#rd

方法1:在路由守卫中处理路由滚动

安装vue-router

npm install vue-router

2. 然后,在你的项目中配置 Vue Router。例如,在 src/router/index.js 文件中

import Vue from 'vue';
import VueRouter from 'vue-router';
import Home from '../views/Home.vue';
import About from '../views/About.vue'; Vue.use(VueRouter); const routes = [
{
path: '/',
name: 'Home',
component: Home
},
{
path: '/about',
name: 'About',
component: About
}
]; const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,
routes
}); export default router;

3.创建目标组件并添加目标元素
假设我们想在 About.vue 组件中滚动到某个特定的位置。我们可以在 About.vue 中添加一个具有唯一 id属性的元素

<template>
<div>
<h1>About Page</h1>
<!-- 为了演示滚动效果,添加高度 -->
<div style="height: 1000px;">
Scroll down to see the target element.
</div>
<!-- 滚动到目标位置 -->
<div id="targetElement">
This is the target element.
</div>
</div>
</template> <script>
export default {
name: 'About',
mounted() {
// 这里可以添加一些组件挂载后的逻辑,但滚动通常是在路由导航守卫中处理
}
};
</script> <style scoped>
/* 添加一些样式以改善视觉效果 */
</style>

4.在路由导航守卫中处理滚动

为了实现滚动到指定位置,我们需要在路由导航守卫中处理滚动逻辑。可以在 src/router/index.js 中添加滚动行为:

import Vue from 'vue';
import VueRouter from 'vue-router';
import Home from '../views/Home.vue';
import About from '../views/About.vue'; Vue.use(VueRouter); const routes = [
{
path: '/',
name: 'Home',
component: Home
},
{
path: '/about',
name: 'About',
component: About,
// 可以在路由配置中添加 meta 字段来存储滚动信息
meta: {
scrollToTarget: true // 标记该路由需要滚动到目标位置
}
}
]; const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,
routes,
scrollBehavior(to, from, savedPosition) {
if (to.meta.scrollToTarget) {
return new Promise((resolve, reject) => {
setTimeout(() => {
// 获取目标元素
const targetElement = document.querySelector('#targetElement');
if (targetElement) {
// 滚动到目标位置
targetElement.scrollIntoView({ behavior: 'smooth' });
}
resolve();
}, 0); // 使用 setTimeout 确保 DOM 更新完成
});
} else {
// 如果没有特定要求,则恢复之前的位置或滚动到顶部
return savedPosition || { x: 0, y: 0 };
}
}
}); export default router;

5.触发路由导航

最后,在你的 Home.vue 或其他组件中触发路由导航:

<template>
<div>
<h1>Home Page</h1>
<button @click="goToAbout">Go to About Page</button>
</div>
</template> <script>
export default {
name: 'Home',
methods: {
goToAbout() {
this.$router.push({ name: 'About' });
}
}
};
</script>

方法2: 在页面中处理滚动至指定位置

1. 创建 home.vue , about.vue 页面

2. 在home.vue跳转到about.vue页面

this.$router.push({
path: "/about"
});

3. 跳转到about页面后,在about页面获取指定元素距离顶部的距离

<template>
<div>
<!-- 为了演示滚动效果,添加高度 -->
<div style='height:1000px'>div1</div>
<div id='div2' class='id2'>div2</div>
</div>
</template>
<script>
export default {
name: "about",
mounted() {
this.setScrolltop();
},
methods: {
setScrolltop(){
let time=setTimeout(()=>{
this.$nextTick(()=>{
let top=0;
let targetElement=document.getElementById("id2");
if(targetElement){
// 获取元素距离顶部的距离
top=targetElement.offsetTop;
}
if(top>0){
// 滚动到指定位置
window.scrollTo({
top: top,
behavior: 'smooth'
});
}
clearTimeout(time);
time=null;
})
},1000);
}
}
}
</script>

vue-cli 跳转到页面指定位置的更多相关文章

  1. html锚点 点击跳转到页面指定位置

    本来是在看阮大神写的ajax教程,突然发现点击目录文字会跳转到相对应的文本内容,于是乎激发了我的兴趣. 这个究竟怎么做的,刚开始看的时候一知半解,找度娘就是:"点击跳转到页面指定位置&quo ...

  2. jQuery跳转到页面指定位置

    @参考博客 var t = $("#id").offset().top;// 获取需要跳转到标签的top值 //$(window).scrollTop(t);// 跳转到指定位置 ...

  3. HTML实现跳转到页面指定位置

    <a href="#page1">跳转到页面1</a> <a href="#page2">跳转到页面2</a> ...

  4. 通过href简单实现单击a链接跳转到页面指定位置

    在页面中点击a标签后,要使其跳到页面里面相应的地方,方法很简单,就是在a标签里面href中的内容和你要跳到这个区域的id同名即可,例如: <a href="#ppp" tar ...

  5. html js点击按钮滚动跳转定位到页面指定位置(DIV)的方法代码

    一:通过html锚点实现滚动定位到页面指定位置(DIV):    如果我们要点击实现跳转的地方是一个html锚点,也就是点击一个A标签超链接实现跳转,可以把A标签的href属性直接指向跳转指定位置的d ...

  6. coolite 获取新的页面链接到当前页面指定位置Panel的运用

    如下图所示,点击温州市文成县之前,右边是一片空白,点击后生成新的页面 html运用到了coolite的Panel控件 <Center> <ext:Panel ID="Pan ...

  7. ScrollTo:实现平滑滚动到页面指定位置

    ScrollTo:实现平滑滚动到页面指定位置 ScrollTo是一款基于jQuery的滚动插件,当点击页面的链接时,可以平滑地滚动到页面指定的位置.适用在一些页面内容比较多,页面长度有好几屏的场合,本 ...

  8. html页面标记 点击目录跳转到页面相应位置 简易回到顶部

    html页面标记 点击目录跳转到页面相应位置 简易回到顶部  参考博客:

  9. vue 点击元素滚动到指定位置(滑动到指定位置对应标签自动选中)

    一:各个模块不相同情况 1.内容部分<div class="anchor"> <div v-for="(item,index) in anchors&q ...

  10. jquery 跳转到当前页面指定位置

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. tensorflow的官方强化学习库agents的相关内容及一些注意事项

    源代码地址: https://github.com/tensorflow/agents TensorFlow给出的官方文档说明: https://tensorflow.google.cn/agents ...

  2. java模拟并发请求工具类(测试专用)

    1.背景 实际生产中,我们开发好接口后可能会简单的压力测试一下,也就是说模拟并发测试,测试工具类如下: 2.工具类 package tentative.normal.other; import cn. ...

  3. ComfyUI插件:efficiency-nodes-comfyui节点

    前言: 学习ComfyUI是一场持久战, efficiency-nodes-comfyui是提高工作流创造效率的工具,包含效率节点整合工作流中的基础功能,比如Efficient Loader节点相当于 ...

  4. 零基础学习人工智能—Python—Pytorch学习(二)

    前言 数学的学习跟数学的计算是要分开的,现在回头再去看大学的高数和线性代数,如果只是学习的话,其实一门课程3天,也就学完了. 学校的课程之所以上那么久,其实是为了考试,也就是为计算准备的.计算有意义的 ...

  5. MFC的CBitmapButton的使用指南

    注意:此按钮使用前应该将按钮的属性:Owner Draw->True 注意:此按钮使用前应该将按钮的属性:Owner Draw->True 注意:此按钮使用前应该将按钮的属性:Owner ...

  6. [天线原理及设计>基本原理] 1. 辐射机制

    1. 辐射机制 1.1. Single Wire 单线 如果电荷不移动,则不会产生电流,也不会产生辐射. 如果电荷以匀速移动: a. 如果电线是直的,并且范围是无限的,则没有辐射. b. 如果电线弯曲 ...

  7. 安装部署harbor

    配置文件中修改内容hostname 和 证书 私钥 需要指定到文件 hostname: hub.rainsc.com # http related config http: # port for ht ...

  8. 【测试平台开发】——02Vue前端框架实战—router路由设计(登录页面)

    一.安装vue-cli Mac系统: sudo npm install -g vue-cli 检查是否安装好: vue -V 二.创建新项目 1.打开Vue项目管理器 输入命令: vue ui 但是没 ...

  9. Web刷题之polarctf靶场(1)

    PolarCTF 1.XFF 打开靶场发现需要ip为1.1.1.1的用户才行, 打开BurpSuite进行抓包并对数据包进行修改,根据题目XFF提示 flag{847ac5dd4057b1ece411 ...

  10. mysql bit(1) 字段insert 报错 Data too long

    insert数据时,给bit(1)字段赋值 '1' 报错 将字符串'1',修改为数字1即可