$(function() {
  $(window).scroll(function() {

    if ($(window).scrollTop() > 300) {
      $('nav').addClass('shrink');
      console.log(1);
    } else {
      $('nav').addClass('shrink');
      console.log(2)
    }
  });
});

.nav {
  margin-top: 0px;
  margin-bottom: 0px;
  background-color: #ffffff;
  box-shadow: 0px 1px 4px #555555;
  color: #000000;
  list-style: none;
  text-align: right;
  padding: 10px 0 10px 0;
  width: 100%;
  height: 50px;
  position: fixed;
  z-index: 99;
}

.shrink {
  height: 20px;
  background-color: #000000;
}

<link rel="stylesheet" type="text/css" href="styles.css">
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.1.1.min.js"></script>
<script src="app.js"></script>
<ul class="nav">
  <div class="logo">
    <a href=""> <img src="img/logo.png"></a>
  </div>
  <div class="name"> <a href=""> YE AN EDUCATION </a> </div>
  <li> <a href="#">HOME</a></li>
  <li> <a href="#">ABOUT</a></li>
  <li> <a href="#">SERVICES</a></li>
  <li> <a href="#">CONTACT</a></li>
</ul>





jQuery代码执行良好,所有if语句均正常运行。问题在于样式不适用,我不知道为什么。即使使用“!important”也无济于事。

最佳答案

您的目标不正确。

$('nav')应该是$('.nav')

$(function() {
    $(window).scroll(function() {
        if ($(window).scrollTop() > 300) {
            $('.nav').addClass('shrink');
            console.log(1);
        } else {
            $('.nav').addClass('shrink');
            console.log(2)
        }
    });
});

关于jquery - addClass不适用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42776566/

10-11 12:05