这是另一个使用 CSS3 的建议(我知道这可以改进,但我只是快速地做这件事给你一个想法)。
这假设内容已经加载。如果您通过 AJAX 加载,我会以不同的方式进行加载。
HTML
<nav>
<a href='#content1'>Content 1</a>
...
<a href='#content7'>Content 7</a>
</nav>
<article id='main-content-wrapper'>
<section id='content1'>content 1</section>
...
<section id='content7'>content 7</section>
</article>
CSS
#main-content-wrapper{
max-height: 30em; /* arbitrary for example only */
overflow:auto; /* scroll if over max-height */
}
#main-content-wrapper section:not(:first-child){ display:none; }
#main-content-wrapper section:target{ display:block; }
JavaScript(如果你不想要 CSS3 :target - 我还没有测试过这个)
var id = location.hash.replace('#','');
if( id.length > 0 ){
var sections = document.getElementById('main-content-wrapper').getElementsByTagName('section');
for( var i = sections.length-1; i >= 0; i-- ){
sections[i].style.display = 'none';
}
document.getElementById(id).style.display = 'block';
}
jQuery版本
if( location.hash.length > 0 ){
$('#main-content-wrapper content').hide();
$(location.hash).show();
}