【发布时间】:2023-03-06 00:48:01
【问题描述】:
我的网站上有一个浮动页面导航列表。它具有页面的所有标题,用户可以轻松地单击页面导航项以转到页面的正确锚点。它还有助于让访问者了解页面结构,并知道他/她在页面上的位置。
现在,为了帮助用户了解他/她在页面上的位置,我希望页面导航列表中的正确项目能够根据用户的位置突出显示(添加/删除 CSS 类)。
我希望我已经很好地解释了自己。这是怎么做到的?谢谢!
- 编辑-
感谢塔尔加特的回答。我现在有这个代码:
<body ng-app="myApp">
这是我的控制器:
<script type="text/javascript">
var app = angular.module("myApp", []);
app.controller("validateCtrl", function($scope) {
$scope.isActive = {};
$scope.isActive = function (state) {
return state === $state.current.name;
};
});
</script>
这是从导航列表到我们提供的名为“祖先冒险”的游览之一的锚链接:
<a href="#ancestral-adventure" ng-class="{active: isActive('ancestral-adventure')}">Ancestral Adventure</a>
"ancestral-adventure" 是标头的 id。不过,也许我应该用这个 id 将“祖传历险记”内容包装在一个 div 中?这是标题:
<h3 id="ancestral-adventure" name="ancestral-adventure">Ancestral Adventure</h3>
正如您在$state.current.name 中提到的name 的角度代码,为了安全起见,我也在标题中添加了具有相同值的名称和ng-name。
使用此代码,导航列表项不会更新 - 没有任何反应。我已确保 active 类适用于列表项,并且 AngularJS 库正在运行。我可能做错了什么?谢谢!
【问题讨论】:
-
点击是否会导致 URL 中的哈希部分(或片段部分,
#之后的部分)更新?然后你可以使用:target(结合animation)。 -
或者您是否只想突出显示导航列表中的项目而不是页面上的实际部分?
-
感谢您的评论,Xufox。是的,我希望突出显示导航列表项 - 而不是页面内容本身的部分。
标签: javascript css angularjs