在UI路由器中平滑滚动自动滚动

时间:2014-02-07 16:21:39

标签: angularjs angular-ui-router

有没有办法通过平滑滚动来获取ui-router的自动滚动功能,而不是立即跳转到那个地方?

或者有没有办法将eventlistener添加到所有状态,当状态以我可以访问ui-view元素的方式被触发时被触发?

1 个答案:

答案 0 :(得分:8)

这样的事情应该有效。你可能不得不调整一下target.offset()。如果你有一个固定的标题或者类似的东西可能会弄乱偏移量,那么你可能需要调整一下。

app.config(function ($provide) {
  $provide.decorator('$uiViewScroll', function ($delegate) {
    return function (uiViewElement) {
        $('html,body').animate({
            scrollTop: uiViewElement.offset().top
        }, 500);
    };
  });
});

autoscroll="true"保留在您的ui视图上。

在prodiver上查看其他答案:Angular ui-router scroll to top, not to ui-view