在我的应用中,当页面向下滚动时,我会更改位置哈希值#
。当div
元素的顶部部分带有id
时section-1
出现在屏幕上,我通过$location.$hash()
方法更改了哈希值。
为防止自动滚动浏览器行为,我使用disableAutoScrolling
。当禁用html5mode时,所有内容都按预期工作,并且页面在散列更改时不会自动滚动。但是当我启用html5mode时,它会忽略disableAutoScrolling
并将页面滚动到位置散列更改事件上的元素。
这是负责html5mode和autoScroll预防的代码的一部分。
app.config(['$anchorScrollProvider' , '$locationProvider', function ($anchorScrollProvider, $locationProvider) {
$anchorScrollProvider.disableAutoScrolling();
$locationProvider.hashPrefix('!');
$locationProvider.html5Mode(true);
}]);
现在我看到唯一的解决方法 - 在div
ID中附加一些额外的字符,以避免此滚动。
Angular 1.3.8(1.3.5也有此)+ angular-ui-router 0.2.13(0.2.11也有此)。
任何想法如何解决? 感谢。