【发布时间】:2015-06-26 16:46:54
【问题描述】:
我正在开发一个用 AngularJS 构建的应用程序。传递给我的一个要求是,当表单无效并且用户单击提交时,窗口应将第一个无效元素滚动到视图中。
这很容易使用 element.scrollIntoView() 完成,但我需要设置一个偏移量。您会看到,页面顶部有一个“淡入”页面其余部分的标题。见下图。
所以我只能尝试找出一些抵消的方法。我找到了一堆例子,但我没有找到我正在寻找的东西。
这是我当前的代码(
var visibleInvalids = angular.element.find('.ng-invalid:visible');
if (angular.isDefined(visibleInvalids)){
// if we find one, set focus and anchor
visibleInvalids[0].scrollIntoView(true);
visibleInvalids[0].focus();
}
【问题讨论】:
-
不能用jQuery吗?
-
我真的不应该,因为它是一个 AngularJS 应用程序。我正在滑动边缘移动页面,因为它是来自控制器的直接 dom 操作。糟糕。
-
我很想知道这个(在指令中)的角度友好的实现。我在网站上做了类似的事情,但可惜它使用 jQuery。
-
我提出的可能能够进入指令。我什至还没有接受。我想先获得一些选票和cmets。
-
找出您想要滚动到的位置并使用
scrollTo。
标签: javascript angularjs scroll offset