如果元素在屏幕上可见,我正在尝试编写if或else函数。任何帮助都会很棒
function isVisable( element, container ){
var elementTop = $(element).offset().top,
elementHeight = $(element).height(),
containerTop = $(container).offset().top,
containerHeight = $(container).height();
return ((((elementTop - containerTop) + elementHeight) > 0) && ((elementTop - containerTop) < containerHeight));
}
if (isVisable(".section section_2", ".project_images")); {
$('.top').hide();
}
else {
$('.top').show();
}
答案 0 :(得分:1)
这里有语法错误:
if (isVisable(".section section_2", ".project_images")); {
$('.top').hide();
}
else {
$('.top').show();
}
在此处删除分号".project_images")); {
答案 1 :(得分:1)
如果最终你所做的只是选择是hide()
还是show()
,你可以使用fadeToggle();
$('.top').fadeToggle();
如果它取决于另一个元素的可见性,您可以使用:
$('#another_element').is(':visible') ? $('.top').hide() : $('.top').show();
最后,如果必须使用自定义函数来确定元素可见性PLUS位置,则可以使用:
isVisable(".section section_2", ".project_images") ? $('.top').hide() : $('.top').show();
效率更高+看起来更干净+不重新发明轮子,虽然我们都喜欢:)
希望这有帮助!
答案 2 :(得分:0)
.length可用于检查元素是否可见。
可以非常简单地使用,例如:
$("element-to-be-checked").length