一、使用Vue Router的滚动行为(scrollBehavior) Vue Router提供了一个方便的scrollBehavior选项,可以在路由切换时控制滚动行为。这个选项返回一个对象,指定了新页面的滚动位置。 const router = new VueRouter({ routes: [ // 你的路由配置 ], scrollBehavior (to, from, savedP
const router = new VueRouter({ routes, mode: 'history', scrollBehavior(to,from,savedPo...
只需在创建 Vue Router 实例时,给它加上一个 scrollBehavior 函数,就像给路由安装了个超级滚动引擎。这一函数接受三个参数:to、from 和 savedPosition。其中,to 和 from 是你在页面之间跳跃时的路由对象,而 savedPosition 则是浏览器的滚动位置,它会在你按下浏览器的后退或前进按钮时出现,仿佛是浏览器的“...
routes,scrollBehavior(to,from, savedPosition) {if(savedPosition) {// 如果存在保存的位置(即用户使用浏览器的前进/后退按钮),则返回到该位置returnsavedPosition;}else{// 否则滚动到顶部return{top:0};}}});
当用户在页面间切换时,scrollBehavior方法会根据配置的逻辑来决定滚动位置。如果返回savedPosition,页面将滚动到之前的位置;如果返回{x: 0, y: 0},页面将滚动到顶部。 方法二:使用第三方滚动库 除了使用Vue Router的scrollBehavior,我们还可以使用一些第三方滚动库来实现平滑滚动效果。比如使用vue-scrollto插件。
路由切换时页面不滚动:这可能是因为没有正确配置滚动行为。在Vue JS中,可以通过在路由配置中设置scrollBehavior属性来定义滚动行为。例如,可以设置为scrollBehavior(to, from, savedPosition) { return { x: 0, y: 0 } }来在每次路由切换时将页面滚动到顶部。
分析:通过在不同的生命周期钩子和scrollBehavior()使用console.log()打印顺序如下: created钩子 mounted钩子 to参数: {***} from参数: {***} 异步请求数据:get data 打印位置信息 savedPosition {x:0, y: 630} 可知:必须使用异步滚动,否则,请求的数据重新赋值,将导致页面重新渲染,因此利用setTimeout将回调事件...
const router = new Router({ scrollBehavior(to, from, savedPosition) { // keep-alive 返回缓...
简介:vue路由跳转时,总是跳转到下一个页面的底部___解决办法 在路由的js中加入 scrollBehavior (to, from, savedPosition) {if (savedPosition) {return savedPosition} else {return { x: 0, y: 0 }}}, 列如: export default new Router({// mode: 'history',mode: 'history',scrollBehavior (to, ...
如图我从首页中进入推荐职位详情页,在scrollBehavior中打印to和from 显示确实是从home到了positiondetail,但是我从详情页返回时,(返回使用的是$router.back()) 显示的to和from都是Home 从而导致了从详情页返回首页时savePosition是undefined,无法记录滚动条位置 请问各位我这个问题是出在了哪里,或者说我应该怎么解决vue...