Vuejs2 当在页面加载时异步加载所述元素时,滚动到位置哈希中给定的元素
我使用位置散列传递元素ID,如下所示: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
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
),因此我可以确保它只在初始页面加载时滚动