Vuejs2 为什么VueJs router savedPosition for scrollBehavior会返回第一个未定义的位置和下一个{x:0,y:0}
我使用的是vue router 2.5.3,有两个页面:第一个页面是长列表(通过ajax加载),第二个页面是详细信息 当我在列表页上向下滚动,然后单击浏览器按钮进行下一步导航时,浏览器总是滚动到顶部。Vuejs2 为什么VueJs router savedPosition for scrollBehavior会返回第一个未定义的位置和下一个{x:0,y:0},vuejs2,vue-router,Vuejs2,Vue Router,我使用的是vue router 2.5.3,有两个页面:第一个页面是长列表(通过ajax加载),第二个页面是详细信息 当我在列表页上向下滚动,然后单击浏览器按钮进行下一步导航时,浏览器总是滚动到顶部。savedPosition的值是第一次未定义的,下一次尝试对象{x:0,y:0} <div class="main-content"> <router-view ></router-view> </div> scrollBehavior(to,
savedPosition
的值是第一次未定义的
,下一次尝试对象{x:0,y:0}
<div class="main-content">
<router-view ></router-view>
</div>
scrollBehavior(to, from, savedPosition) {
console.info(savedPosition) // first attemp undefined and next always {x: 0, y: 0} regardless previous position
if (savedPosition) {
return savedPosition
} else if (to.name == from.name)
{
return
}
else {
return { x: 0, y: 0 }
}
},
mode: 'history',
滚动行为(到、从、保存位置){
console.info(savedPosition)//第一次尝试未定义,下一次总是{x:0,y:0},而不管前一个位置
如果(保存位置){
返回保存的位置
}else if(to.name==from.name)
{
返回
}
否则{
返回{x:0,y:0}
}
},
模式:“历史”,
什么是savedPosition以及它是如何触发的?这样您就没有页面转换了。您是否使用overflow-y:scroll设置了绝对/固定位置?如果是的话,这就是为什么它得到0-0。@Luna我使用html/css模板基于-我没有看到position:absolute/fixed或overflow-y:scroll的用法这很奇怪。你能做一个JSFIDLE或者共享一个github repo吗?你有没有想过这个问题?所以你没有页面转换。您是否使用overflow-y:scroll设置了绝对/固定位置?如果是的话,这就是为什么它得到0-0。@Luna我使用html/css模板基于-我没有看到position:absolute/fixed或overflow-y:scroll的用法这很奇怪。你能做一个JSFIDLE或者分享一个github回购吗?你有没有想过这个问题?