0

我有一个在我网站的所有页面上展开的子菜单。子菜单包含指向父菜单项链接到的一页内的命名锚点的链接。我正在使用 jquery scrollTO 和 localScroll 成功地使用命名锚为页面内的滚动设置动画,但是如果我从站点内的不同页面导航到命名锚,它不会保留动画滚动或从顶部指定的偏移量。有没有办法做到这一点?

我非常感谢任何反馈!塞西莉亚

下面是我正在使用的 html 示例。我在左侧有一个固定的菜单和一个固定的标题。现在,当您单击子菜单中的锚链接时,它会动画,并在距离窗口顶部 150 像素的活动命名锚处停止,这样它就不会消失在固定标题下方。

如果可能的话,我希望在从其他页面之一导航时让窗口滚动到命名锚点,但最重要的是我必须保留距离顶部 150px 的偏移量。现在,当单击另一个页面的锚链接时,它从顶部停止 0px 并在标题下方消失。

<head>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/jquery.scrollTo-min.js"></script>
<script type="text/javascript" src="js/jquery.localscroll-min.js"></script>
<script type="text/javascript" > 
$.localScroll({offset:-150});
</script>
</head>

<body>
<div id="page">
    <div id="header-bg"><!-- fixed header -->
    <div id="header">
    <div id="logo"><a href="/" title="Home" rel="home"><img src="logo.jpg" alt="Home" id="logo-image" /></a></div>
    </div>
    </div> 
<div id="main">

<div id="sidebar-left"><!-- fixed menu -->
<ul class="menu">
<li class="expanded"><a href="/page1" title="Page 1" class="active">Page 1</a><!-- parent -->
        <ul class="menu"><!-- sub-menu linking to named anchors -->
        <li><a href="/page1#anchor1">Anchor-link 1</a></li>
        <li><a href="/page1#anchor2">Anchor-link 2</a></li>
        <li><a href="/page1#anchor3">Anchor-link 3</a></li>
        <li><a href="/page1#anchor4">Anchor-link 4</a></li>
        <li><a href="/page1#anchor5">Anchor-link 5</a></li>
    </ul>
</li>
<li><a href="/page2">Page 2</a></li>
<li><a href="/page3">Page 3</a></li>
<li><a href="/page4">Page 4</a></li>
</ul>  
</div> <!-- /#sidebar-left --> 

<div id="content">
<div class="chapter">
<a name="anchor1" id="anchor1"></a><!-- named-anchor -->
<h3>Sub-heading</h3>
<p>Lots of text</p>
</div>

<div class="chapter">
<a name="anchor2" id="anchor2"></a><!-- named-anchor -->
<h3>Sub-heading</h3>
<p>Lots of text</p>
</div>

<div class="chapter">
<a name="anchor3" id="anchor3"></a><!-- named-anchor -->
<h3>Sub-heading</h3>
<p>Lots of text</p>
</div>

<div class="chapter">
<a name="anchor4" id="anchor4"></a><!-- named-anchor -->
<h3>Sub-heading</h3>
<p>Lots of text</p>
</div>

<div class="chapter">
<a name="anchor5" id="anchor5"></a><!-- named-anchor -->
<h3>Sub-heading</h3>
<p>Lots of text</p>
</div>

</div> <!-- /#content --> 
</div> <!-- /#main --> 
</div> <!-- /#page --></body>
4

1 回答 1

-1

好吧,如果您只在点击时应用它,它肯定不会保持动画加载。

至于维护命名锚的实际偏移量,默认情况下它当然应该这样做。如果您转到someurl.com#someNamedLink具有滚动功能的标准页面,默认情况下它将带您到该命名锚点的顶部,不需要 JS。

现在,如果没有看到任何代码,就不可能知道你是如何实现它的。框架,溢出的div?谁知道?

请提供您的示例代码,以便我们确定发生了什么。

乍一看,听起来您想在页面和 onload 中维护状态。查看jquery.bbq进行状态控制。它允许您轻松捕获命名的 href (#someNamedLink) onload 并将动画执行到正确的锚点。还为您提供了后退按钮支持的额外好处,因此您可以在整个地方进行动画处理(我个人觉得这种行为很烦人,但这是您的特权)

于 2010-06-22T14:23:03.723 回答