有没有办法在变量声明中添加条件语句?

时间:2014-04-11 10:53:29

标签: javascript jquery

我希望仅在页面为+ 450时才将var threshold添加到body.home。所以像这样:

var headHeight = jQuery('#masthead-space').height() + 23; 
var threshold =  jQuery('.PopularTabsWidget').offset().top - headHeight (if body.home) + 450;

jQuery(window).scroll(function () {
    if (jQuery(window).scrollTop() >= threshold)
        jQuery('.PopularTabsWidget').addClass('fixed');
    else
        jQuery('.PopularTabsWidget').removeClass('fixed');
});

4 个答案:

答案 0 :(得分:1)

您可以尝试使用条件/三元运算符:

var headHeight = jQuery('#masthead-space').height() + 23; 
var threshold =  jQuery('.PopularTabsWidget').offset().top - headHeight + (body.home ? 450 : 0);

答案 1 :(得分:1)

您可以使用三元操作(?:)

var threshold =  jQuery('.PopularTabsWidget').offset().top - headHeight + (jQuery('body').hasClass('home') ? 450 : 0);

如果我理解正确body.home表示 body元素有一个CSS类' home'

为避免性能影响,请使用jQuery(document.body)

答案 2 :(得分:0)

试试这个

var headHeight = jQuery('#masthead-space').height() + 23; 
var threshold =  jQuery('.PopularTabsWidget').offset().top - headHeight + body.home ? 450 : 0 ;

jQuery(window).scroll(function () {
    if (jQuery(window).scrollTop() >= threshold)
        jQuery('.PopularTabsWidget').addClass('fixed');
    else
        jQuery('.PopularTabsWidget').removeClass('fixed');
});

答案 3 :(得分:0)

var threshold =  jQuery('.PopularTabsWidget').offset().top - headHeight +(body.home?450:0);