Javascript 简单jQuery条件语句
我的网站上有一个非常简单的脚本 如果标题可见,它将删除类Javascript 简单jQuery条件语句,javascript,jquery,Javascript,Jquery,我的网站上有一个非常简单的脚本 如果标题可见,它将删除类fixed,如果不可见,它将添加它 $(function() { $(window).scroll(function() { $(".wrapper > header").visible(true) ? $(".wrapper > main > nav").removeClass("fixed") : $(".wrapp
fixed
,如果不可见,它将添加它
$(function() {
$(window).scroll(function() {
$(".wrapper > header").visible(true) ?
$(".wrapper > main > nav").removeClass("fixed") :
$(".wrapper > main > nav").addClass("fixed");
});
});
除了在fixed
类之间切换之外,我还想在fixed2
类之间切换
因此,请加上:
$(".scrollWrapper").removeClass("fixed2") :
$(".scrollWrapper").addClass("fixed2");
但是我不确定如何添加它。jquery对象中没有称为visible的属性。所以你需要使用
$(".wrapper > header").is(":visible)
因此,表达式变成:
$(".wrapper > header").is(":visible") ?
$(".wrapper > main > nav").addClass("fixed") : $(".wrapper > main > nav").removeClass("fixed") ;
用于切换:
$(".scrollWrapper").toggleClass('fixed fixed2');
jquery对象中没有称为visible的属性。所以你需要使用
$(".wrapper > header").is(":visible)
因此,表达式变成:
$(".wrapper > header").is(":visible") ?
$(".wrapper > main > nav").addClass("fixed") : $(".wrapper > main > nav").removeClass("fixed") ;
用于切换:
$(".scrollWrapper").toggleClass('fixed fixed2');
由于将有两条语句,因此需要恢复为正常的if/else:
if($(".wrapper > header").visible(true)){
$(".wrapper > main > nav").removeClass("fixed");
$(".scrollWrapper").removeClass("fixed2");
}else{
$(".wrapper > main > nav").addClass("fixed");
$(".scrollWrapper").addClass("fixed2");
}
或者,不要使用任何条件,并为此使用toggleClass
方法:
var toggle = $(".wrapper > header").visible(true);
$(".wrapper > main > nav").toggleClass("fixed", toggle);
$(".scrollWrapper").toggleClass("fixed2", toggle);
注意:以上假设您有一个
可见的-插件,否则该方法将无法工作。若要测试可见性,应使用is。is(“:visible”)
因为您将有两条语句,所以需要还原为正常的if/else:
if($(".wrapper > header").visible(true)){
$(".wrapper > main > nav").removeClass("fixed");
$(".scrollWrapper").removeClass("fixed2");
}else{
$(".wrapper > main > nav").addClass("fixed");
$(".scrollWrapper").addClass("fixed2");
}
或者,不要使用任何条件,并为此使用toggleClass
方法:
var toggle = $(".wrapper > header").visible(true);
$(".wrapper > main > nav").toggleClass("fixed", toggle);
$(".scrollWrapper").toggleClass("fixed2", toggle);
注意:以上假设您有一个可见的-插件,否则该方法将无法工作。要测试可见性,您应该使用is。is(“:visible”)
如果您根据某个条件执行一些操作,那么最好使用if语句,而不是三元语句
$(function() {
$(window).scroll(function() {
if($(".wrapper > header").visible(true)){
$(".wrapper > main > nav").removeClass("fixed");
$(".scrollWrapper").removeClass("fixed2");
}else{
$(".wrapper > main > nav").addClass("fixed");
$(".scrollWrapper").addClass("fixed2");
}
});
});
Ternary很好,但它们都有自己的用例。这可能不是其中之一。如果你根据一个条件做一些事情,那么最好使用if语句,而不是三元语句
$(function() {
$(window).scroll(function() {
if($(".wrapper > header").visible(true)){
$(".wrapper > main > nav").removeClass("fixed");
$(".scrollWrapper").removeClass("fixed2");
}else{
$(".wrapper > main > nav").addClass("fixed");
$(".scrollWrapper").addClass("fixed2");
}
});
});
Ternary很好,但它们都有自己的用例。这可能不是其中之一。您可以使用if-else语句而不是三元语句。毕竟,jQuery是一个JavaScript库
$(function() {
$(window).scroll(function() {
if ($(".wrapper > header").visible(true)) {
$(".wrapper > main > nav").removeClass("fixed");
$(".scrollWrapper").removeClass("fixed2");
} else {
$(".wrapper > main > nav").addClass("fixed");
$(".scrollWrapper").addClass("fixed2");
}
});
});
如果您真的打算只使用三元语句,您只需添加另一个语句:
$(function() {
$(window).scroll(function() {
$(".wrapper > header").visible(true) ?
$(".wrapper > main > nav").removeClass("fixed") :
$(".wrapper > main > nav").addClass("fixed");
$(".wrapper > header").visible(true) ?
$(".scrollWrapper").removeClass("fixed2") :
$(".scrollWrapper").addClass("fixed2");
});
});
您可以使用if-else语句而不是三元语句。毕竟,jQuery是一个JavaScript库
$(function() {
$(window).scroll(function() {
if ($(".wrapper > header").visible(true)) {
$(".wrapper > main > nav").removeClass("fixed");
$(".scrollWrapper").removeClass("fixed2");
} else {
$(".wrapper > main > nav").addClass("fixed");
$(".scrollWrapper").addClass("fixed2");
}
});
});
如果您真的打算只使用三元语句,您只需添加另一个语句:
$(function() {
$(window).scroll(function() {
$(".wrapper > header").visible(true) ?
$(".wrapper > main > nav").removeClass("fixed") :
$(".wrapper > main > nav").addClass("fixed");
$(".wrapper > header").visible(true) ?
$(".scrollWrapper").removeClass("fixed2") :
$(".scrollWrapper").addClass("fixed2");
});
});
他试图将fixed2
添加到.scrollWrapper
,而不是nav块。@诚实:是复制粘贴错误。现在修好了。谢谢你指出这一点。他试图将fixed2
添加到.scrollWrapper
,而不是导航块。@诚实:是的,复制粘贴错误。现在修好了。谢谢你指出这一点。