为什么我必须使用变量而不是“0”?

时间:2015-11-05 16:20:12

标签: jquery variables scroll

当我将变量更改为0时,它不起作用。为什么我必须使用变量而不是“0”?

使用0号而不是变量名,你会看到。 fiddle

$(function() {

  var zero = 0;
  $(window).scroll(function() {
    var top = $(this).scrollTop();
    if (top > zero) {
      $("nav").hide();
    } else if (top < zero) {
      $("nav").show();
    }
    zero = top;
  });

});
body {
  height: 1000px;
}

nav {
  width: 100%;
  height: 75px;
  background: #333;
  position: fixed;
  top: 0;
  left: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav></nav>

1 个答案:

答案 0 :(得分:1)

  

为什么我必须使用变量而不仅仅是“0”?

因为您正在修改该值。如果您尝试使用文字值而不是变量,那么下面是您的代码:

$(window).scroll(function() {
  var top = $(this).scrollTop();
  if (top > 0) {
    $("nav").hide();
  } else if (top < 0) {
    $("nav").show();
  }
  0 = top; // <-- here is the problem
});

显然,最后一行没有意义。您无法修改文字值。存储一个值并随着时间的推移修改它正是变量的用途。所以在这种情况下你需要使用一个变量。