Vuejs2 当在页面加载时异步加载所述元素时,滚动到位置哈希中给定的元素

Vuejs2 当在页面加载时异步加载所述元素时,滚动到位置哈希中给定的元素,vuejs2,vue.js,Vuejs2,Vue.js,我使用位置散列传递元素ID,如下所示: https://example.com/object/id#sub-object 但是,子对象元素的列表是在页面加载后从api动态加载的 异步请求完成后,如何将视口滚动到给定元素?考虑到页面加载时它的位置在DOM中不可用。我自己解决了这个问题,我使用jquery制作滚动动画,因为它很简单 if(window.location.hash && !this.hasScrolled){ var hash = location.hash

我使用位置散列传递元素ID,如下所示:

https://example.com/object/id#sub-object
但是,
子对象
元素的列表是在页面加载后从api动态加载的


异步请求完成后,如何将视口滚动到给定元素?考虑到页面加载时它的位置在DOM中不可用。

我自己解决了这个问题,我使用jquery制作滚动动画,因为它很简单

if(window.location.hash && !this.hasScrolled){

    var hash = location.hash.substring(1);

    $('html, body').animate({scrollTop: this.$refs[hash][0].offsetTop -200} ,800);

    this.hasScrolled = true;
 }
这必须发生在组件上的
updated()
钩子中,因为这是已知元素偏移量的点。我添加了一个
hasScrolled
属性(最初设置为
false
),因此我可以确保它只在初始页面加载时滚动