0
我正在使用這個js將類添加到當前段,並將類添加到基於數據屬性的當前導航元素。offset()。top給出錯誤的值
var cutoff = $(window).scrollTop(),
cutoffRange = cutoff + 88,
curSec = $('#main-page').find('.s-active'), // Current section
curID = $(curSec).attr('id'), // Current section ID
curNav = $('.navigation').find('li[data-navSections*="'+curID+'"]'); // Find current menu item
$('.navigation li').removeClass('current-menu-item');
$(curNav).addClass('current-menu-item');
$('.section').each(function(){
if ($(this).offset().top > cutoff && $(this).offset().top < cutoffRange) {
$('.section').removeClass('s-active')
$(this).addClass('s-active');
return false; // stops the iteration after the first one on screen
}
});
這是例如HTML
<section id="section-home" class="s-active"></section>
<section id="section-about" style="margin-top: 990px"></section>
<section id="section-section"></section>
#section-home {
position: fixed;
top: 0;
left: 0;
height: 100%;
width: 100%;
overflow: hidden;
z-index: 1;
}
#section-about,
#section-section {
z-index: 2;
position: relative;
}
首先seection是一種視差,邊距到第二部分通過另一個腳本添加。
上面的腳本很好的工作,但並沒有將類添加到第一個固定的家庭部分。這不是一個偏移量()。的頂部?
的jsfiddle http://jsfiddle.net/f5ans6g6/
請提供的jsfiddle – Alex
有沒有錯誤與'偏移()'。所以請注意'offset()'和'position()'之間的區別。你的問題可能是** margin-top:990px'在**偏移量計算後加**。所以錯誤在你的代碼中。提供一個jsfiddle.com重現這個問題,我們可以幫助你更好地 –
檢查這個'$(this).offset()。top> cutoff'如果兩者都是整數,有時這也是我的問題 –