当我将变量更改为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>
答案 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
});
显然,最后一行没有意义。您无法修改文字值。存储一个值并随着时间的推移修改它正是变量的用途。所以在这种情况下你需要使用一个变量。