私は 3 つのコンテンツ ボックスを持っており、すべてに下のコンテンツ ボックスへのアンカー リンクを含むメニューがあります。(リンクは含まれており、動的です)
昨日、私はスクリプトの助けを受け取りました..そして、大きなコンテンツボックスがあるときに非常にうまく機能しています。
ここを参照してください:http://jsfiddle.net/wv9EQ/7/
小さなコンテンツボックスがあると問題が発生しました
ここを参照してください:http://jsfiddle.net/wv9EQ/8/
たとえば、ボックス 2 と 3 の間にいると、両方のアンカーがアクティブになります。それを修正するためのアイデアはありますか?現在入っているボックスのみにアクティブなアンカーが必要なだけです
私はこのスクリプトを使用します:
$(function(){
var sections = {},
_height = $(window).height(),
i = 0;
//// Grab positions of our sections
$('.section').each(function(){
sections[this.name] = $(this).offset().top;
});
$(document).scroll(function(){
var $this = $(this),
pos = $this.scrollTop();
for(i in sections){
if(sections[i] > pos && sections[i] < pos + _height){
$('a').removeClass('active');
$('.nav_' + i).addClass('active');
}
}
});
$('.head-nav-button').click(function()
{
$('a').removeClass('active');
$('.nav_' + $(this).attr('href').replace('#', '')).addClass('active');
});
});