带有 sIFR 的 Javascript 选项卡菜单
我正在开发一个两级菜单,例如此页面上的动态驱动器示例。目标是在主导航onmouseover
下方显示子导航层,并在一定时间间隔后恢复到每个页面的默认子导航层。它可以工作,但有一个大问题:我在主要导航项上使用 sIFR(s 位于
s 内部)。脚本逻辑不适用于 sIFR 化的项目,因为它的目标是已被替换的
标记。我尝试更改脚本以定位父
,但它只是搞砸了主导航。我对 Javascript 不是很了解,所以任何建议都会受到赞赏!一个想法:sIFR 是否可以替换每个导航,而不是替换每个
?或者
仍然对菜单脚本不可用?我并没有接受这个 javascript 解决方案,事实上,我使用简单的 Javascript 显示/隐藏方法尝试了自己的一些其他方法。但是,该脚本具有我正在寻找的“恢复默认”行为。
--> 来自 Dynamic Drive 的 Javascript 菜单源
• 主导航源:
<div id="mainNav">
<ul>
// rel="subnav1" shows the "subnav1" layer in the snippet below
<li class="navLi"><a href="around-othello.php" rel="subnav1">Around Othello</a></li>
// rel="subnav2" shows the "subnav2" layer in the snippet below
<li class="navLi"><a href="living-here.php" rel="subnav2">Living Here</a></li>
// rel="subnav3" shows the "subnav3" layer in the snippet below
<li class="navLi"><a href="link-to-it.php">Link to it</a></li>
<li class="navLi"><a href="whats-new.php">What's New</a></li>
<li class="navLi"><a href="contact.php">Contact</a></li>
<li class="navLi"><a href="retail.php">Retail Hub</a></li>
</ul>
</div>
• sIFR 替换主要导航项目
sIFR.replace(grotesqueMT, {
selector: 'li.navLi',
tuneWidth:4,
forceSingleLine:true,
ratios:[8, 1.3, 11, 1.21, 12, 1.2, 14, 1.19, 21, 1.16, 28, 1.13, 38, 1.12, 61, 1.11, 94, 1.1, 95, 1.09, 103, 1.1, 107, 1.09, 110, 1.1, 119, 1.09, 120, 1.1, 1.09],
css: ['.sIFR-root { background-color:#5a7e92; color:#ffffff; font-size:18; }'
,'a { color:#ffffff; text-decoration:none; }'
,'a:link { color:#ffffff; text-decoration:none; }'
,'a:hover { color:#f0eed6; text-decoration:underline; }'
]
});
• Subnav 源(单独的代码片段)
<div id="subnav1" class="subnav">
<ul>
<li><a href="around-othello.php">Around Othello</a></li>
<li class="pipe"> | </li>
<li><a href="around-othello.php?p=your-big-backyard">Your Big Backyard</a></li>
<li class="pipe"> | </li>
<li><a href="around-othello.php?p=explore-the-area">Explore the Area</a></li>
<li class="pipe"> | </li>
<li><a href="communityBuzz">Community Buzz</a></li>
</ul>
</div>
<div id="subnav2" class="subnav">
<ul>
<li><a href="around-othello.php">Around Othello</a></li>
<li class="pipe"> | </li>
<li><a href="communityBuzz">Community Buzz</a></li>
</ul>
</div>
<div id="subnav3" class="subnav">
<ul>
<li><a href="living-here.php">Living Here</a></li>
<li class="pipe"> | </li>
<li><a href="living-here.php?p=living-green">Living Green</a></li>
</ul>
</div>
I am working on a two-level menu like the Dynamic Drive examples on this page. The goal is to show a subnav layer below the main nav onmouseover
, reverting to each page's default subnav layer after a timed interval. It works, except for a big problem: I am using sIFR on the main navigation items (<a>
s inside of <li>
s). The script logic doesn't work on the sIFRized items, because it targets <a rel="">
tags, which have been replaced.
I tried changing the script to target the parent <li>
s, but it just screwed up the main nav. I am not very advanced with Javascript so any advice is appreciated!
One idea: is it possible to sIFR replace each navigation <a>
instead of replacing each <li>
? Or would the <a rel="">
still be unavailable to the menu script?
I'm not married to this javascript solution, in fact I tried a few other methods of my own using simple Javascript show/hide methods. However, this script has the "reverting to default" behavior I am looking for.
--> Javascript menu source from Dynamic Drive
• Main navigation source:
<div id="mainNav">
<ul>
// rel="subnav1" shows the "subnav1" layer in the snippet below
<li class="navLi"><a href="around-othello.php" rel="subnav1">Around Othello</a></li>
// rel="subnav2" shows the "subnav2" layer in the snippet below
<li class="navLi"><a href="living-here.php" rel="subnav2">Living Here</a></li>
// rel="subnav3" shows the "subnav3" layer in the snippet below
<li class="navLi"><a href="link-to-it.php">Link to it</a></li>
<li class="navLi"><a href="whats-new.php">What's New</a></li>
<li class="navLi"><a href="contact.php">Contact</a></li>
<li class="navLi"><a href="retail.php">Retail Hub</a></li>
</ul>
</div>
• sIFR replacement for main nav items
sIFR.replace(grotesqueMT, {
selector: 'li.navLi',
tuneWidth:4,
forceSingleLine:true,
ratios:[8, 1.3, 11, 1.21, 12, 1.2, 14, 1.19, 21, 1.16, 28, 1.13, 38, 1.12, 61, 1.11, 94, 1.1, 95, 1.09, 103, 1.1, 107, 1.09, 110, 1.1, 119, 1.09, 120, 1.1, 1.09],
css: ['.sIFR-root { background-color:#5a7e92; color:#ffffff; font-size:18; }'
,'a { color:#ffffff; text-decoration:none; }'
,'a:link { color:#ffffff; text-decoration:none; }'
,'a:hover { color:#f0eed6; text-decoration:underline; }'
]
});
• Subnav source (a separate code snippet)
<div id="subnav1" class="subnav">
<ul>
<li><a href="around-othello.php">Around Othello</a></li>
<li class="pipe"> | </li>
<li><a href="around-othello.php?p=your-big-backyard">Your Big Backyard</a></li>
<li class="pipe"> | </li>
<li><a href="around-othello.php?p=explore-the-area">Explore the Area</a></li>
<li class="pipe"> | </li>
<li><a href="communityBuzz">Community Buzz</a></li>
</ul>
</div>
<div id="subnav2" class="subnav">
<ul>
<li><a href="around-othello.php">Around Othello</a></li>
<li class="pipe"> | </li>
<li><a href="communityBuzz">Community Buzz</a></li>
</ul>
</div>
<div id="subnav3" class="subnav">
<ul>
<li><a href="living-here.php">Living Here</a></li>
<li class="pipe"> | </li>
<li><a href="living-here.php?p=living-green">Living Green</a></li>
</ul>
</div>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
说真的,省得麻烦,不要在这里使用 sIFR。
Seriously, save yourself the trouble and don't use sIFR here.