【发布时间】:2014-04-30 00:10:50
【问题描述】:
我是新来的,但我已经在这个网站上搜索了一段时间的解决方案。
好的,问题来了:
我构建了一个包含多个部分的静态页面。每个部分都可以通过导航栏中的锚链接显示,该链接在页面左侧是静态的。我怎样才能使刚刚显示在屏幕上的该部分的链接处于活动状态?
如果这些部分在外部 html 文件中,这应该很容易。但在我的情况下,我找不到实现这种情况的方法......
<div id="navbar">
<ul>
<li><h5><a href="#1" class="active">SERVICE</a> </br> </br></h5></li>
<li><h5><a href="#2" class="inactive">LEISTUNGEN</a> </br> </br></h5></li>
<li><h5><a href="#3" class="inactive">ÜBER UNS</a> </br> </br></h5></li>
<li><h5><a href="#4" class="inactive">PARTNER</a> </br> </br></h5></li>
<li><h5><a href="#5" class="inactive">KONTAKT</a> </br></h5></li>
</ul>
我想到了一个 JavaScript 可以更改链接 onclick 的类,但我无法让它工作......
请帮帮我,告诉我该怎么做!
最后但同样重要的是,请原谅我糟糕的英语和编码知识;)
关于我要创建的页面的进一步说明! 这是我的导航菜单,它的位置固定在左边!
<div id="navbar">
<ul>
<li><h5><a href="#1">SERVICE</a> </br> </br></h5></li>
<li><h5><a href="#2">LEISTUNGEN</a> </br> </br></h5></li>
<li><h5><a href="#3">ÜBER UNS</a> </br> </br></h5></li>
<li><h5><a href="#4">PARTNER</a> </br> </br></h5></li>
<li><h5><a href="#5">KONTAKT</a> </br></h5></li>
</ul>
</div>
它继续一个大的部分,内容是 4 个小部分。这些部分如下所示:
<div id="weiss">
<div id="1" class="content section" data-id="1">
<div class="page page-1">
<div class="topic">
<img class="mwlogo" src="media/logo.png"/>
</div>
<div class="text">
<h2>...</h2>
</div>
<div class="vorteile">
<div class="first">
<ol>
<li><p>...</li>
<li><p>...</p></li>
<li><p>...</p></li>
<li><p>...</p></li>
<li><p>...</p></li>
</ol>
</div>
<div class="last">
<ol>
<li><p>...</p></li>
<li><p>...</p></li>
<li><p>...</p></li>
<li><p>...</p></li>
<li><p>...</p></li>
<li><p>...</p></li>
<li><p>...</p></li>
</ol>
</div>
</div>
</div>
</div>
<div>
我在index.html中链接了activemenuitem:
<script type="text/javascript" src="functions/js/activemenuitem.js"></script>
看起来像这样:
function checkActiveSection ()
{
var fromTop = jQuery(window).scrollTop() ;
jquery('#weiss .section'.each(function() {
var sectionOffset = jQuery(this).offset() ;
if ( sectionOffset.top <= fromTop )
{
jQuery('#navbar li').removeClass('active') ;
jQuery('#navbar li[data-id="'+jQuery(this).data('id')+'"]').addClass('active') ;
}
}) ;
}
jQuery(window).scroll(checkActiveSection) ;
jQuery(document).ready(checkActiveSection) ;
jQuery('#navbar li a').click(function(e){
var idSectionGoto = jQuery(this).closest('li').data('id') ;
$('html, body').stop().animate({
scrollTop: jQuery('#weiss .section[data-id="'+idSectionGoto+'"]').offset().top
}, 300,function(){
checkActiveSection() ;
});
e.preventDefault() ;
}) ;
但问题仍然存在,我似乎没有办法让它工作!该脚本在加载站点时加载,但没有从菜单类中添加或删除类。我需要做什么?! 请帮帮我!
【问题讨论】:
-
你的意思是这样的吗(滚动时在右侧):developers.facebook.com/docs/web/share
-
我想你可能想这样做:stackoverflow.com/questions/9979827/…
-
@Pierre Granger 是的,这几乎是正确的方向。谢谢,我会努力完成的;)
-
@PierreGranger 你能帮我把stackoverflow.com/questions/9979827/… 整合到我的网站吗?我必须自定义什么?