JavaScript для изменения цвета панели навигации при прокрутке не работает

#javascript #jquery #html #css #twitter-bootstrap

#javascript #jquery #HTML #css #twitter-bootstrap

Вопрос:

Моя цель — изменить цвет панели навигации с прозрачного на указанный цвет после прокрутки. Однако мой код, похоже, неэффективен, так как панель остается прозрачной после прокрутки. Я искал эту проблему с некоторым успехом, однако я чувствую, что моего js-кода должно быть достаточно для того, что я пытаюсь выполнить; просто без каких-либо незначительных ошибок, которые могут быть у меня в файле js, css или html.

JS:

 $(document).ready(function()
{
    var scroll_start = 0;
    var startchange = $('.navbar-default');
    var offset = startchange.offset();

    $(document).scroll(function() 
    {
        scroll_start = $(this).scrollTop();
        if (scroll_start > offset.top)
        {
            $('.navbar-default').css('background-color', 'black');
        }
        else
        {
            $('.navbar-default').css('background-color', 'transparent');
        }
    });

});
 

CSS:

 .navbar-default {
    background: transparent !important;
    transition-duration: 1s;
}
.color-fix>li>a {
    color: white !important;
}
.color-fix>a {
    color: white !important;
}
#nav-right {
    float: right;
}
 

HTML: (Неопределенные классы взяты из bootstrap)

 <nav class="navbar navbar-default navbar-fixed-top">
   <div class="navbar-header color-fix">
       <a class="navbar-brand" href="">g·nee</a>
   </div>
   <ul class="nav navbar-nav color-fix" id="nav-right">
      <li><a href="">Home</a></li>
      <li><a href="">Page 1</a></li>
      <li><a href="">Page 2</a></li>
   </ul>
</nav>
 

Ответ №1:

!important мешает, удалите его, и он работает.

https://jsfiddle.net/2gq2nqhr/

Комментарии:

1. Я знал, что это будет что-то глупо простое, что я пропустил -_-

Ответ №2:

удалите !important из css, чтобы предотвратить перезапись стиля.

 .navbar-default {
    background: transparent ;
    transition-duration: 1s;
}
.color-fix>li>a {
    color: white ;
}
.color-fix>a {
    color: white;
}
#nav-right {
    float: right;
}