vue scrolltop 实现
Vue 中实现滚动到顶部的方法
方法一:使用 window.scrollTo
在 Vue 组件中调用原生 JavaScript 的 window.scrollTo 方法,通过平滑滚动或直接跳转实现。
methods: {
scrollToTop() {
window.scrollTo({
top: 0,
behavior: 'smooth' // 可选,平滑滚动
});
}
}
方法二:使用 ref 绑定元素滚动
适用于局部滚动区域(如 div),通过 ref 获取 DOM 元素并操作其 scrollTop 属性。
<template>
<div ref="scrollContainer" class="scrollable-area">
<!-- 内容 -->
</div>
<button @click="scrollToTop">返回顶部</button>
</template>
<script>
export default {
methods: {
scrollToTop() {
this.$refs.scrollContainer.scrollTo({
top: 0,
behavior: 'smooth'
});
}
}
}
</script>
方法三:使用 Vue 插件 vue-scrollto
通过安装 vue-scrollto 插件实现更灵活的滚动控制,支持动画和回调。

安装插件:
npm install vue-scrollto
使用示例:

import VueScrollTo from 'vue-scrollto';
Vue.use(VueScrollTo);
// 在组件中调用
this.$scrollTo('#topElement', 500, { easing: 'ease-in-out' });
方法四:监听路由变化自动滚动 在 Vue Router 的全局守卫中设置滚动行为,确保页面切换后回到顶部。
const router = new VueRouter({
routes,
scrollBehavior(to, from, savedPosition) {
return { x: 0, y: 0 };
}
});
注意事项
- 平滑滚动(
behavior: 'smooth')可能不被旧浏览器支持,需考虑兼容性。 - 局部滚动需确保目标元素设置了
overflow: scroll或auto。 - 插件
vue-scrollto提供更多配置选项,如动画时长、偏移量等。






