Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何突出显示滚动菜单按钮-AngularJs_Javascript_Html_Angularjs_Highlight - Fatal编程技术网

Javascript 如何突出显示滚动菜单按钮-AngularJs

Javascript 如何突出显示滚动菜单按钮-AngularJs,javascript,html,angularjs,highlight,Javascript,Html,Angularjs,Highlight,这是一个很常见的问题,但我无法解决。 我有一个网站,其中所有部分都在同一页上,你可以通过滚动查看它们。我希望当我在“关于”部分时,菜单上的“关于”按钮会突出显示。 我知道如何一次点击而不是滚动 这是我的代码: index.html: <nav id="nav-wrap"> <ul id="nav" class="nav"> <li class="current"><a class="smoothscroll" ng-click="got

这是一个很常见的问题,但我无法解决。 我有一个网站,其中所有部分都在同一页上,你可以通过滚动查看它们。我希望当我在“关于”部分时,菜单上的“关于”按钮会突出显示。 我知道如何一次点击而不是滚动

这是我的代码:

index.html

<nav id="nav-wrap">
   <ul id="nav" class="nav">
      <li class="current"><a class="smoothscroll" ng-click="gotoElement('hero')" href="">Home</a></li>
       <li ng-repeat="item in menuItems"><a ng-click="gotoElement(item.id)" href="">{{item.page}}</a>
   </ul>
</nav>
编辑 这是@FrontMonkey建议的解决方案

首先,在index.html中必须添加以下内容:

<script src="js/angular-scroll.js"></script>

可以找到

main.js的

angular.module('allApps').controller('menuCtrl', function($scope, $location, $document) {
    $scope.menuItems=[
                      {page:"What WE do", id:"services"},
                      {page:"Why choose US", id:"about"},
                      {page:"our works", id:"portfolio"},
                      {page:"Partner", id:"partner"},
                      {page:"News", id:"news"},
                      {page:"Contact", id:"contact"}
                      ];

    /*Scroll function: change background-color of the header*/
    $scope.toTheTop = function() {
        $document.scrollTopAnimated(0, 800);
        var h = $('header').height();
        var y = $(window).scrollTop();
        var header = $('#main-header');
        if ((y > h + 30 ) && ($(window).outerWidth() > 768 ) ) {
          header.addClass('opaque');
        }else {
             if (y < h + 30) {
                header.removeClass('opaque');
             }else {
                header.addClass('opaque');
             }
        }
    }
}).value('duScrollOffset', 30);
angular.module('allApps').controller('menuCtrl',function($scope,$location,$document){
$scope.menuItems=[
{page:“我们做什么”,id:“服务”},
{page:“为什么选择我们”,id:“关于”},
{page:“我们的作品”,id:“公文包”},
{page:“Partner”,id:“Partner”},
{page:“News”,id:“News”},
{第页:“联系人”,id:“联系人”}
];
/*滚动功能:更改标题的背景颜色*/
$scope.toTheTop=函数(){
$document.scrollTopAnimated(0800);
var h=$('header').height();
变量y=$(窗口).scrollTop();
变量头=$(“#主头”);
如果((y>h+30)和($(窗口).outerWidth()>768)){
header.addClass('不透明');
}否则{
如果(y
您必须应用一些css

 #nav li:hover,#nav li:active{
  background: somecolor;
 }

你必须应用一些css

 #nav li:hover,#nav li:active{
  background: somecolor;
 }
这是某人的jsfiddle-:D这是某人的jsfiddle-:D