环顾四周,无法找到解决这个非常简单问题的任何东西。
我还在学习jQuery,所以事先为我的愚蠢道歉,我知道这是一个非常简单的修复方法,但比如使用||
并尝试使用if
和else
var
内的jQuery(window).scroll(function() {
Menuresize();
});
function Menuresize() {
var myheight = jQuery(".section-image-slider, .section-video-slider").height() - 90;
var myheightalt = jQuery(".area-tag").height() - 167;
var scroll = jQuery(window).scrollTop();
if (scroll > myheight) {
jQuery(".bt-menu").addClass("whitebg");
}
elseif (scroll > myheightalt){
jQuery(".bt-menu").addClass("whitebg");
}
else {jQuery(".bt-menu").removeClass("whitebg");}
};
jQuery(window).resize(function() {
Menuresize();
});
看不到为我工作。
基本上这就是我目前所拥有的。我想要的只是添加/删除课程" whitebg"取决于元素的滚动位置和高度,效果很好。
问题是试图查询两个不同的元素,每个元素都需要一个不同的高度缓冲区,如你所见(-167和-90),所以不能分组,但需要是/或者'所以两者都被考虑在内。
非常感谢
RB
{{1}}
答案 0 :(得分:0)
如果我正确理解您的问题,toggleClass可以使用布尔参数来打开/关闭指定的类。然后,您可以计算出导致true
或false
:
e.g。
jQuery(".bt-menu").toggleClass("whitebg", scroll > myheight || scroll > myheightAlt);
我发现这个问题有点难以理解,如果这是你想要的其他内容,请澄清:)
答案 1 :(得分:0)
让Menuresize
函数获取选择器和高度的参数,然后只为每个参数调用:
function Menuresize(selector, height) {
var myheight = jQuery(selector).height() - height;
var scroll = jQuery(window).scrollTop();
if (scroll > myheight) {
jQuery(".bt-menu").addClass("whitebg");
}
else {
jQuery(".bt-menu").removeClass("whitebg");
}
};
jQuery(window).resize(function() {
Menuresize(".section-image-slider, .section-video-slider", 90);
Menuresize(".area-tag", 167);
});