Vue3在点击菜单切换路由时,将ElementPlus UI库中el-main组件的内容滚动恢复到顶部

这篇具有很好参考价值的文章主要介绍了Vue3在点击菜单切换路由时,将ElementPlus UI库中el-main组件的内容滚动恢复到顶部。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

功能:Vue3在点击菜单切换路由时,将页面el-main的内容滚动到顶部,布局如下,使用UI组件库为ElementPlus

Vue3在点击菜单切换路由时,将ElementPlus UI库中el-main组件的内容滚动恢复到顶部,vue,JavaScript,vue.js,javascript,前端

 在网上搜很多都是在route.js中的router.beforeEach中使用window.scrollTop(0,0) 或 window.scrollTo(0,0) 滚动,但是我使用无效,于是使用操作dom的方法,如下

可以使用watch函数来 监听 当前路由的变化,当路由变化后滚动到顶部。

<template>
    <el-main ref="mainRef">
        <router-view />
    </el-main>
</template>

<script setup>
import { watch, onBeforeUnmount } from 'vue'
import { useRouter } from 'vue-router'


const router = useRouter()
const mainRef = ref(null)
const unwatch = watch(
    () => router.currentRoute.value,
    (to, from) => {
        mainRef.value.$el.scrollTo({ top: 0, behavior: 'smooth' })
    }
)

onBeforeUnmount(() => {
    unwatch()
})
</script>

在上述代码中,我们首先导入watchonBeforeUnmount函数以及useRouter函数来获取路由实例。然后,在mounted生命周期钩子中,我们使用watch函数来监听router.currentRoute.value,这是一个响应式的路由对象。当路由发生变化时,回调函数将被调用,其中的to参数表示要切换到的路由对象,from参数表示当前的路由对象。

在回调函数中处理路由变化的逻辑  使其滚动到顶部。最后,在组件销毁前,我们使用onBeforeUnmount钩子函数来停止监听。文章来源地址https://www.toymoban.com/news/detail-802209.html

到了这里,关于Vue3在点击菜单切换路由时,将ElementPlus UI库中el-main组件的内容滚动恢复到顶部的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用vue3+elementplus做的一个滚动菜单栏的组件

    在elementplus中看到了滚动条绑定了slider,但是这个感觉很不实用,在底部,而且横向滚动,最常见的应该是那种固定在左上角的带着菜单的滚动条,于是我就想要不做一个小demo,方便以后使用 样式如下:(背景是我父组件的背景色 首先不能用横着的滚动条,一开始我是想用

    2024年02月12日
    浏览(31)
  • vue3后台管理系统实现动态侧边导航菜单管理(ElementPlus组件)

    记住 一级(el-sub-menu)的都是只是展示的 点击跳转的都是一级下的子级(el-menu-item) 完整展示 1:在登陆功能进行登陆 获取menu列表 注册路由表的时候 把文件进行创建好 因为注册的方法需要获取这个路径 整个router下的main product等等都要创建 2:侧边菜单界面 router/index.ts

    2024年02月16日
    浏览(39)
  • vue3,elementPlus和自己封装,点击 新增添加表单,删除表单,提交数据

    点击提交的打印效果 components/insertForm.vue 主文件引入 效果一样 *

    2024年02月16日
    浏览(28)
  • 【VUE】ElementPlus之动态主题色调切换(Vue3 + Element Plus+Scss + Pinia)

    关于ElementPlus的基础主题色自定义可以参阅《【VUE】ElementPlus之自定义主题样式和命名空间》 有了上面基础的了解,我们知道 ElementPlus 的主题色调是基于 CSS3变量 特性进行全局控制的, 那么接下来我们也基于 CSS3变量 来实现主题色调的 动态切换 效果; 主要控制的色调类型有

    2024年02月08日
    浏览(27)
  • vue3+elementplus点击按钮使用el-image-viewer图片预览组件

    1.首先确保你是全局引入,不是全局的需要自主引入该组件 2..vue文件中定义组件 3. showsrcListref:[\\\'\\\']格式 4.点击按钮给showsrcListref赋值即可完成,同时将showImagePreview置为true

    2024年01月18日
    浏览(52)
  • Vue3 v-for点击切换样式

    在div上绑定   :class= { 名称(class/id):a === key 值 }   并 添加 一个 点击事件 声明 const  a  = ref(0) ;  css写我们要的样式(就是我们绑定的class名称) 点击事件里写    i.value = key 值

    2024年02月13日
    浏览(35)
  • vue3使用el-menu多级菜单出现点击一个全部展开的问题

            测试时发现单击菜单显示子菜单时其它的菜单也被展开,看了其它文章写的是修改:index=\\\"menu.index\\\",         虽然点击菜单其它的子菜单不会展开了,但是index存的是编号,url存的是路由地址,点击子菜单地址栏显示的是编号信息,不是地址,如图所示      

    2024年02月02日
    浏览(38)
  • vue3中如何实现通过点击不同的按钮切换不同的页面

    完成以上需求,我们可以使用vue中的component标签来实现。 component是Vue.js中一个特殊的标签,用于动态地绑定其它组件。它可以与v-bind:is指令一起使用,来决定要渲染哪个组件。下面是示例代码

    2024年02月09日
    浏览(40)
  • Django+vue3权限菜单rabc设计和动态路由

    本次是基于Django和vue实现 github源码:nineaiyu/xadmin-server: xadmin-基于Django+vue3的rbac权限管理系统 (github.com) 服务器设计及部分代码  权限控制的话,可以基于Django的permission进行控制,并通过访问api的URL操作 核心代码如下 因此,需要对menu表进行设计,由于涉及到了前端vue路由,

    2024年02月12日
    浏览(35)
  • vue3实现动态菜单和动态路由和刷新后白屏处理

    项目中,当每一个角色得到的界面不一致的时候,我们就不能使用静态菜单了,而是要从后端得到动态的菜单数据,然后动态的将菜单数据展示在界面上。 除了在界面展示,也还要将界面的路由动态添加,在路由动态添加之后,你可能会出现刷新界面,界面变白的情况,页面

    2024年02月06日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包