我正在尝试在将表格保留在滚动顶部时删除固定标题。但是当我快速滚动时,我的代码不能将可见性隐藏得足够快,并且由于循环(可能是?)而继续显示我的表的固定标题。我怎样才能正确隐藏它?我修复的方式不是我想要的:检查表的末尾并隐藏所有内容。
当我说快速滚动时,就是按住栏滚动。或者按住滚动条向下滚动。
$window.addEventListener("scroll", function() {
var tab = $("div[name='" + tabScroll + "']")[0];
var tableResults= tab.getElementsByClassName('results'); // get all tables(lots of tables)
//loop all tables to check if the top scroll is inside of table specific.
$(tableResults).each(function(index, element){
var link = $(element);
var offset = link.offset();
var top = offset.top;
var bottom = top + link.outerHeight();
var inside = ($(document).scrollTop() >= $(element).offset().top && $(document).scrollTop() <= bottom-150)
if(inside){
toggleHeader(element, "visible");
} else if($(document).scrollTop() >= $(element).offset().top && $(document).scrollTop() <= bottom){
toggleHeader(element, "hidden");
}
});
});
function toggleHeader(x, v) {
$(x).find('thead').css('visibility', v);
$(x).parent().parent().find('.float-left-div').children().css('visibility', v);
}
答案 0 :(得分:0)
每个滚动,如果是+ else,它将调用else,否则调用。每个循环内部的代码。
var element = angular.element(val);
var positionOutsideOfTable = $(element).offset().top + $(element).outerHeight();
var inside = (scrollY >= $(element).offset().top && scrollY <= positionOutsideOfTable - 200);
if (inside) {
// I'm inside of this table yay
} else if (scrollY >= $(element).offset().top && scrollY <= positionOutsideOfTable + $(document).height()) {
// I'm below the table and at same time I'm out of everything :(
} else {
// I'm out of everything
}