我想在下面的代码中使用条件语句。基本上,我想做这样的事情:
if (home page) insert 655, if (not home page) insert 391
主页的body元素有一个home
类,所以我可以使用.home #sidebar
来定位主页边栏。
jQuery(window).scroll(function () {
var threshold = 655;
if (jQuery(window).scrollTop() >= 655)
jQuery('#sidebar').addClass('fixed');
else
jQuery('#sidebar').removeClass('fixed');
});
这是我做错的不正确的尝试(请不要笑):
jQuery(window).scroll(function () {
var threshold = if (is_home()) { 655 } else { 391 };
if (jQuery(window).scrollTop() >= if (is_home()) { 655 } else { 391 })
jQuery('#sidebar').addClass('fixed');
else
jQuery('#sidebar').removeClass('fixed');
});
有人能帮助我吗?
编辑:这是完整的代码:
/*-----------------------------------------------------------------------------------
Custom JS - All custom front-end jQuery
-----------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------------*/
/* Let's dance
/*-----------------------------------------------------------------------------------*/
jQuery(document).ready(function($) {
/*-----------------------------------------------------------------------------------*/
/* Fixed Sidebar
/*-----------------------------------------------------------------------------------*/
var threshold = jQuery(document.body).hasClass("home") ? 655 : 391;
if (jQuery(window).scrollTop() >= threshold) {
jQuery('#sidebar').addClass('fixed');
} else {
jQuery('#sidebar').removeClass('fixed');
}
/*-----------------------------------------------------------------------------------*/
/* Pesky YouTube Videos
/*-----------------------------------------------------------------------------------*/
window.onload = function() {
var frames = document.getElementsByTagName("iframe");
for (var i = 0; i < frames.length; i++) {
frames[i].src += "&wmode=opaque";
}
}
/*-----------------------------------------------------------------------------------*/
/* Portfolio Filtering
/*-----------------------------------------------------------------------------------*/
if(jQuery().isotope) {
$container = jQuery('#masonry');
$container.imagesLoaded( function() {
$container.isotope({
itemSelector : '.item',
masonry: {
columnWidth: $(document).width() > 1035 ? 240 : 320
},
getSortData: {
order: function($elem) {
return parseInt($elem.attr('data-order'));
}
},
sortBy: 'order'
}, function() {
// Isotope Chrome Fix
setTimeout(function () {
jQuery('#masonry').isotope('reLayout');
}, 1000);
});
});
// filter items when filter link is clicked
$container = jQuery('#masonry');
jQuery('#filter li').click(function(){
jQuery('#filter li').removeClass('active's);
jQuery(this).addClass('active');
var selector = jQuery(this).find('a').attr('data-filter');
$container.isotope({ filter: selector });
return false;
});
}
/*-----------------------------------------------------------------------------------*/
/* We've finished dancing!
/*-----------------------------------------------------------------------------------*/
});
答案 0 :(得分:3)
您可以使用.hasClass()
查看是否是主页:
if (jQuery(document.body).hasClass("home")) {
// home page here
} else {
// not home page here
}
当然,如果你只是想根据它是否是主页设置你的阈值:
var threshold = jQuery(document.body).hasClass("home") ? 655 : 391;
if (jQuery(window).scrollTop() >= threshold) {
jQuery('#sidebar').addClass('fixed');
} else {
jQuery('#sidebar').removeClass('fixed');
}
答案 1 :(得分:1)
您滥用三元运营商;不需要if
var threshold = (is_home()) ? 655 : 391;
if($(window).scrollTop() >= threshold)
jQuery('#sidebar').addClass('fixed');
else
jQuery('#sidebar').removeClass('fixed');
所有其他答案已经完全解释了使用&#34; .hasClass&#34;,所以我将离开你的&#34; is_home()&#34;到位。
答案 2 :(得分:0)
使用三元条件运算符:
if (jQuery(window).scrollTop() >= ((is_home()) ? 655 : 391))
答案 3 :(得分:0)
您可以使用内联条件。替换此行
var threshold = if (is_home()) { 655 } else { 391 };
有了这个
var threshold = (is_home() ? 655 : 391);
与其他案件相同的gose