当页面加载/路由更改时,我正在使用ui-router的autoScroll向下滚动到div(ui-view)。它目前正在这样做。有没有办法抵消autoScroll?我需要将100px放在菜单可见的元素上方,并且对于如何完成此操作感到困惑。
app.directive('scrollTop', function($uiViewScroll) {
var linker = function (scope, element, attr, $elm) {
$uiViewScroll(element);
};
return {
restrict: 'A',
link: linker
}
});
HTML:
<ui-view [autoscroll="true"]/>
答案 0 :(得分:0)
autoscroll 指令允许您在填充视图时设置浏览器窗口的滚动行为。
默认情况下,$ anchorScroll被ui-router的自定义滚动服务$ uiViewScroll覆盖。此自定义服务允许您在状态激活期间填充ui-view元素时将其滚动到视图中。
尝试修饰默认的$ uiViewScroll服务,覆盖默认行为。
app.config(function ($provide) {
$provide.decorator('$uiViewScroll', function ($delegate) {
return function (uiViewElement) {
// var top = uiViewElement.getBoundingClientRect().top;
// window.scrollTo(0, (top - 30));
// Or some other custom behaviour...
};
});
});