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

Nil*_*ann 8 angularjs angular-ui-router

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

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

Dus*_*tin 8

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

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

继续autoscroll="true"你的ui-view.

在prodiver上查看其他答案:Angular ui-router滚动到顶部,而不是ui-view.