Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 偏移ui路由器自动滚动_Angularjs_Angular Ui Router_Autoscroll - Fatal编程技术网

Angularjs 偏移ui路由器自动滚动

Angularjs 偏移ui路由器自动滚动,angularjs,angular-ui-router,autoscroll,Angularjs,Angular Ui Router,Autoscroll,当页面加载/路由更改时,我使用ui路由器的autoScroll向下滚动到一个div(ui视图)。它目前正在这样做。有办法抵消自动滚动吗?我需要在菜单的元素上方留下100px,我不知道该怎么做 app.directive('scrollTop', function($uiViewScroll) { var linker = function (scope, element, attr, $elm) { $uiViewScroll(element);

当页面加载/路由更改时,我使用ui路由器的autoScroll向下滚动到一个div(ui视图)。它目前正在这样做。有办法抵消自动滚动吗?我需要在菜单的元素上方留下100px,我不知道该怎么做

app.directive('scrollTop', function($uiViewScroll) {

        var linker = function (scope, element, attr, $elm) {
            $uiViewScroll(element);
        };

        return {
            restrict: 'A',
            link: linker
        }
   });
HTML:


autoscroll指令允许您在填充视图时设置浏览器窗口的滚动行为

默认情况下,$anchorScroll被ui路由器的自定义滚动服务$uiViewScroll覆盖。此自定义服务允许您在状态激活期间填充ui视图元素时将其滚动到视图中

尝试修饰默认的$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...
    }; 
  });
});

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...
    }; 
  });
});