我有元素我想在滚动到的时候做一个固定的位置。我可以做得很好,我的问题是,如何删除固定位置?
当滚动到达元素的偏移顶部时,我正在找到修复元素的位置。问题是,我不能再为元素的偏移顶部获取此数字,因为它现在已修复,滚动时数字会更改。那么我怎么能把它保持为常数,我尝试使用const和var,但区别。
scroll = $(window).scrollTop();
function tb_fix() {
if($('#report_toolbar').length) {
const POS = $('#report_toolbar').offset().top;
if(scroll >= POS) {
$('#report_toolbar').addClass('fixed');
$('#tb_spacer').show();
} else if(scroll < POS && $('#report_toolbar').hasClass('fixed')) {
$('#report_toolbar').removeClass('fixed');
$('#tb_spacer').hide();
}
}
}
答案 0 :(得分:2)
在工具栏下方,您有#tb_spacer。这仍然是具有常量偏移的静态元素。试试这个:
function tb_fix() {
if($('#report_toolbar').length) {
pos = $('#report_toolbar').offset().top;
pos2 = $('#tb_spacer').offset().top;
if(scroll >= pos) {
$('#report_toolbar').addClass('fixed');
$('#tb_spacer').show();
}
if(scroll < pos2 && $('#report_toolbar').hasClass('fixed')) {
$('#report_toolbar').removeClass('fixed');
$('#tb_spacer').hide();
}
}
}