vue-cli 跳转到页面指定位置
原文关注公众号,后台里留言可进行提问,可在后台留言向作者提问解答问题!
方法1:在路由守卫中处理路由滚动
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 跳转到页面指定位置的更多相关文章
- html锚点 点击跳转到页面指定位置
本来是在看阮大神写的ajax教程,突然发现点击目录文字会跳转到相对应的文本内容,于是乎激发了我的兴趣. 这个究竟怎么做的,刚开始看的时候一知半解,找度娘就是:"点击跳转到页面指定位置&quo ...
- jQuery跳转到页面指定位置
@参考博客 var t = $("#id").offset().top;// 获取需要跳转到标签的top值 //$(window).scrollTop(t);// 跳转到指定位置 ...
- HTML实现跳转到页面指定位置
<a href="#page1">跳转到页面1</a> <a href="#page2">跳转到页面2</a> ...
- 通过href简单实现单击a链接跳转到页面指定位置
在页面中点击a标签后,要使其跳到页面里面相应的地方,方法很简单,就是在a标签里面href中的内容和你要跳到这个区域的id同名即可,例如: <a href="#ppp" tar ...
- html js点击按钮滚动跳转定位到页面指定位置(DIV)的方法代码
一:通过html锚点实现滚动定位到页面指定位置(DIV): 如果我们要点击实现跳转的地方是一个html锚点,也就是点击一个A标签超链接实现跳转,可以把A标签的href属性直接指向跳转指定位置的d ...
- coolite 获取新的页面链接到当前页面指定位置Panel的运用
如下图所示,点击温州市文成县之前,右边是一片空白,点击后生成新的页面 html运用到了coolite的Panel控件 <Center> <ext:Panel ID="Pan ...
- ScrollTo:实现平滑滚动到页面指定位置
ScrollTo:实现平滑滚动到页面指定位置 ScrollTo是一款基于jQuery的滚动插件,当点击页面的链接时,可以平滑地滚动到页面指定的位置.适用在一些页面内容比较多,页面长度有好几屏的场合,本 ...
- html页面标记 点击目录跳转到页面相应位置 简易回到顶部
html页面标记 点击目录跳转到页面相应位置 简易回到顶部 参考博客:
- vue 点击元素滚动到指定位置(滑动到指定位置对应标签自动选中)
一:各个模块不相同情况 1.内容部分<div class="anchor"> <div v-for="(item,index) in anchors&q ...
- jquery 跳转到当前页面指定位置
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- tensorflow的官方强化学习库agents的相关内容及一些注意事项
源代码地址: https://github.com/tensorflow/agents TensorFlow给出的官方文档说明: https://tensorflow.google.cn/agents ...
- java模拟并发请求工具类(测试专用)
1.背景 实际生产中,我们开发好接口后可能会简单的压力测试一下,也就是说模拟并发测试,测试工具类如下: 2.工具类 package tentative.normal.other; import cn. ...
- ComfyUI插件:efficiency-nodes-comfyui节点
前言: 学习ComfyUI是一场持久战, efficiency-nodes-comfyui是提高工作流创造效率的工具,包含效率节点整合工作流中的基础功能,比如Efficient Loader节点相当于 ...
- 零基础学习人工智能—Python—Pytorch学习(二)
前言 数学的学习跟数学的计算是要分开的,现在回头再去看大学的高数和线性代数,如果只是学习的话,其实一门课程3天,也就学完了. 学校的课程之所以上那么久,其实是为了考试,也就是为计算准备的.计算有意义的 ...
- MFC的CBitmapButton的使用指南
注意:此按钮使用前应该将按钮的属性:Owner Draw->True 注意:此按钮使用前应该将按钮的属性:Owner Draw->True 注意:此按钮使用前应该将按钮的属性:Owner ...
- [天线原理及设计>基本原理] 1. 辐射机制
1. 辐射机制 1.1. Single Wire 单线 如果电荷不移动,则不会产生电流,也不会产生辐射. 如果电荷以匀速移动: a. 如果电线是直的,并且范围是无限的,则没有辐射. b. 如果电线弯曲 ...
- 安装部署harbor
配置文件中修改内容hostname 和 证书 私钥 需要指定到文件 hostname: hub.rainsc.com # http related config http: # port for ht ...
- 【测试平台开发】——02Vue前端框架实战—router路由设计(登录页面)
一.安装vue-cli Mac系统: sudo npm install -g vue-cli 检查是否安装好: vue -V 二.创建新项目 1.打开Vue项目管理器 输入命令: vue ui 但是没 ...
- Web刷题之polarctf靶场(1)
PolarCTF 1.XFF 打开靶场发现需要ip为1.1.1.1的用户才行, 打开BurpSuite进行抓包并对数据包进行修改,根据题目XFF提示 flag{847ac5dd4057b1ece411 ...
- mysql bit(1) 字段insert 报错 Data too long
insert数据时,给bit(1)字段赋值 '1' 报错 将字符串'1',修改为数字1即可