我的侧边栏上有几个锚点链接,我想在用户单击这些链接并滚动到特定锚点时更改URL。
<div ng-click="updateUrlAndScroll('anchor-1')">
Anchor 1
</div>
$scope.updateUrlAndScroll =function(hash) {
var deregisterListener = $scope.$on('$locationChangeSuccess', function(event) {
if ($route.current.$$route.controller === 'MyController'){
$route.current = lastRoute;
}
});
$location.hash(hash);
var element = document.getElementById(hash);
element.scrollIntoView({behavior: 'smooth', block: 'start'});
}
这是可行的,它不会刷新页面,问题是angularjs立即将页面滚动到锚点哈希,因此scrollIntoView中的动画不起作用。
如何防止angularjs滚动到特定锚点?