AngularJS - $anchorScroll平滑/持续时间

阅读AngularJS文档,我还没有弄清楚是否可以有一个持续时间/缓动选项来平滑滚动到元素。$anchorScroll

它只说:

$location.hash('bottom');

// call $anchorScroll()
$anchorScroll();

我不使用jquery,也不想;是否还有一种聪明而简单的方法来制作或扩展,以使滚动更加流畅?$anchorScroll


答案 1

不幸的是,使用 无法做到这一点。正如您所发现的,它没有任何选项,并且不能与 .为了制作滚动动画,您需要使用自己的服务/工厂或直接javascript。$anchorScroll$anchorScroll$ngAnimate

为了自学,我用一个流畅的滚动服务放在一起的例子。可能有更好的方法来做到这一点,所以鼓励任何反馈。

要滚动到某个元素,请将 a 附加到任何元素。我认为更好的途径是将此作为指令。ng-click="gotoElement(ID)"

这是jsFiddle上的工作示例

更新

现在有许多第三方指令可以实现这一目标。


答案 2

您还可以使用角滚动,链接“https://github.com/durated/angular-scroll/”。它是平滑的滚动也很少的缓动功能,以获得专业的外观。