Pop*_*lli 0 jquery switch-statement
我使用jQuery的switch语句(参见下文)有问题:
$(window).scroll(function() {
var sc = $(document).scrollTop();
switch (sc) {
case sc > 200:
$('.row1').fadeIn();
break;
case sc > 600:
$('.row2').fadeIn();
break;
case sc > 1000:
$(".row3").fadeIn();
}
});
Run Code Online (Sandbox Code Playgroud)
情况是,当我向下滚动200px时,应显示class =“ row1”的div标签。但是它没有出现。
有人知道我的代码有什么问题吗?
谢谢
您不能>在switch语句中使用。
而是使用一条if ... else if链:
var sc = $(document).scrollTop();
if (sc > 1000) {
$(".row3").fadeIn();
} else if (sc > 600) {
$('.row2').fadeIn();
} else if (sc > 200) {
$('.row1').fadeIn();
}
Run Code Online (Sandbox Code Playgroud)
注意:请注意条件是相反的,因此您可以获得正确的结果。如果您将它们保留为原始顺序,那么到达时if (sc > 1000)将永远是不正确的。这样的值sc早就已经可以处理了if (sc > 200)。
如果您喜欢紧凑的代码,则也可以使用三元运算符编写此代码,并且仅在不同的部分(即以下数字)上工作row:
$(".row" + (sc > 1000 ? 3 : sc > 600 ? 2 : sc > 200 ? 1 : 0)).fadeIn();
Run Code Online (Sandbox Code Playgroud)
这可能会产生选择器.row0,但是那样(应该)不存在,在这种情况下将不会发生任何事情。
| 归档时间: |
|
| 查看次数: |
206 次 |
| 最近记录: |