javascript - Bootstrap : Navbar Item Stuck on Active State After Scrolling To Another Item?

标签 javascript css twitter-bootstrap

我是 JavaScript 的新手,正在学习使用 Bootstrap 模板。我遇到的问题是,在我的导航栏中,如果我单击一个元素,然后开始滚动,即使我已经滚动到另​​一个元素,该元素仍然保持事件状态,如下所示:

enter image description here

如果我点击关于,然后滚动到投资组合,关于仍然保持事件状态。

我不确定是否需要相关代码来帮助我,但根据观察,我注意到我的 main.css 中有这些代码:

.navbar-default a.navbar-brand:link, .navbar-default a.navbar-brand:visited
{
    color: #fff;
}

.navbar-default a.navbar-brand:hover, .navbar-default a.navbar-brand:active
{
    color: #12bebd;
}

.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus, 
.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:active,
.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav>.active > a:focus
{
    color: #12bebd;
    background: none;
    -webkit-transition: color 0.5s;
    -moz-transition: color 0.5s;
    transition: color 0.5s;
}

.navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus
{
    background-color: #12bebd;
}

我还在提供的 jquery.nav.js 中注意到:

//Handle clicks on the nav
self.$nav.on('click.onePageNav', $.proxy(self.handleClick, self));

...

handleClick: function(e) {
            var self = this;
            var $link = $(e.currentTarget);
            var $parent = $link.parent();
            var newLoc = '#' + self.getHash($link);

            if(!$parent.hasClass(self.config.currentClass)) {
                //Start callback
                if(self.config.begin) {
                    self.config.begin();
                }

                //Change the highlighted nav item
                self.adjustNav(self, $parent);

                //Removing the auto-adjust on scroll
                self.unbindInterval();

                //Scroll to the correct position
                $.scrollTo(newLoc, self.config.scrollSpeed, {
                    axis: 'y',
                    easing: self.config.easing,
                    offset: {
                        top: -self.config.scrollOffset
                    },
                    onAfter: function() {
                        //Do we need to change the hash?
                        if(self.config.changeHash) {
                            window.location.hash = newLoc;
                        }

                        //Add the auto-adjust on scroll back in
                        self.bindInterval();

                        //End callback
                        if(self.config.end) {
                            self.config.end();
                        }
                    }
                });
            }

            e.preventDefault();
        },

如果我注释掉 self.$nav.on('click.onePageNav', $.proxy(self.handleClick, self));,当我滚动离开时该元素变为非事件状态,但是我没有得到那种滚动动画效果。

我相信这很简单。我该如何解决这个问题或者我可以在哪里查看我的代码?

最佳答案

只需从这部分 CSS 中删除 navbar-default .navbar-nav > li > a:focus,:

.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus, 
.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:active,
.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav>.active > a:focus
{
    color: #12bebd;
    background: none;
    -webkit-transition: color 0.5s;
    -moz-transition: color 0.5s;
    transition: color 0.5s;
}

并添加为代码的独立部分(新属性和值):

.navbar-default .navbar-nav > li > a:focus {
   color: #fff;
}

关于javascript - Bootstrap : Navbar Item Stuck on Active State After Scrolling To Another Item?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37903092/

相关文章:

css - 如何使用下载的 Bootstrap 文件

javascript - 导航器在列类型的股票图表中无法正常工作

css - openweb 图标与 font awesome 图标冲突

css - 中心 3 div 水平全屏

css - 转换错误:Jekyll::Converters::Scss 遇到错误

css - 如何使面板控件响应?

javascript - Summernote 设置默认字体大小和字体

javascript - export default { foo, bar } 在带有 babel 的 node.js 中不起作用

javascript - 动态添加html内容时出现意外的 token 非法错误

HTML 元素 - 不同类型,但共享相同的类名 - 行为异常