Jquery 跳转到内容

Jquery 跳转到内容,jquery,angularjs,accessibility,tabindex,wai,Jquery,Angularjs,Accessibility,Tabindex,Wai,我正试图创建一个网站,通过点击标签来满足某些可访问性标准。问题是我在屏幕的左侧有一个导航菜单,我的用户请求一个“跳到内容类型”链接,这样他们就不必不断地循环浏览多个链接才能到达内容所在的位置 但是,我在我的web应用程序中使用AngularJS,如果我使用标准的“跳到内容”功能示例:它将不起作用。我已经在为角度代码使用锚和 有没有其他方法来实现这一点?我有一个特定的div标签,我希望选项卡选择转到该标签。它应该转到div中的一个元素。我以前使用过效果很好的方法。它是轻量级的8.5kB,易于使用,

我正试图创建一个网站,通过点击标签来满足某些可访问性标准。问题是我在屏幕的左侧有一个导航菜单,我的用户请求一个“跳到内容类型”链接,这样他们就不必不断地循环浏览多个链接才能到达内容所在的位置

但是,我在我的web应用程序中使用AngularJS,如果我使用标准的“跳到内容”功能示例:它将不起作用。我已经在为角度代码使用锚和

有没有其他方法来实现这一点?我有一个特定的div标签,我希望选项卡选择转到该标签。它应该转到div中的一个元素。

我以前使用过效果很好的方法。它是轻量级的8.5kB,易于使用,甚至可以为您处理滚动动画。它还符合可访问性标准,因为Tab键可以像普通的锚定标记一样用于导航

这样实施:

JS

HTML

工作代码笔供参考:

狩猎快乐

我最近与您一起工作,并为您提供了一些建议

在模板中:

<a href="javascript:void(0)" ng-click="scrollTo('hello-scroll')">Go</a>
...
<div id="hello-scroll">Hello Scroll!</div>
我添加$timeout调用的原因是,当我在没有它的情况下测试它时,$scrollTo似乎不起作用。对$location.hashhash的调用似乎需要一些很短的时间来处理,因此需要100毫秒的等待


希望它能起作用。

你可以添加按钮/链接,然后单击只需关注你想要的任何元素-有什么问题吗?问题是我的内容可以更改;因为我使用的是模板和ui路由器。因此,我需要它转到content中元素的选项卡索引,您可以使用特殊指令/id/class在每个页面上“标记”content中的第一个元素。或者,您可以选择页面上的所有可选项卡元素并跳过导航按钮。这不是一个很酷的方式,但至少是这样。问题是我使用的是角度用户界面路由器。因此,当用户单击链接时,不会刷新整个页面。它必须使用模板将其他页面的内容加载到当前主页中。这在那里不起作用,因为我需要转到内容。它没有选择内容。我需要它来选择。如果用户使用tab键进行导航并按enter键,则他们需要转到内容并查看所选内容。这似乎不是键盘导航所需的内容。
<a href="#nav-one" du-smooth-scroll duration="1500">Navigation Link</a>

<!-- further down the page -->

<div id="nav-one">
  Content goes here.
</div>
<a href="javascript:void(0)" ng-click="scrollTo('hello-scroll')">Go</a>
...
<div id="hello-scroll">Hello Scroll!</div>
angular
   .module('someModule', [])
   .controller('scrollCtrl', function($scope, $timeout, $timeout, $anchorScroll) {

        /**
         * @name    scrollTo
         * @desc    Anchor scrolling within page using $anchorScroll
         * @param   {String}   hash - Element ID.
         * @return  void
         */
        $scope.scrollTo = function(hash) {
           $location.hash(hash);
           $timeout(function() {
              $anchorScroll();
            }, 100);
        }

    });