在多个页面上平滑滚动导航

时间:2014-03-24 21:22:44

标签: javascript navigation href smooth-scrolling location-href

我有一个单页面样式页面,其中顶部导航链接到同一页面中具有平滑滚动效果的锚点。

问题是在其他内部页面中使用了相同的导航片段,所以我想知道:

如果当前页面不是单页面,我如何创建转到单页面的条件。

这是我到目前为止所做的,也许阅读代码可以更容易理解我想要实现的目标。

<ul id="main_menu">
<li><a href="#start">Start</a></li>
<li><a href="#overview">Overview</a></li>
<li><a href="#gift">Make a Gift</a></li>
<li><a href="#activities">Activities</a></li>
<li><a href="#resources">Resources</a></li>
</ul>

这在我的主页是sample.com/start

中工作正常

但是,如果我在使用sample.com/overview,那么当我点击&#34;资源&#34;在主菜单链接上,我应该回到sample.com/start#resources而不是sample.com/overview#resources

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

在您的初始页面上按原样使用您的代码,在其他网页上使用start#resources#resources放入您的网址而不是{{1}}。

答案 1 :(得分:0)

    <li><a href="
                <?php if(!strpos($_SERVER['SCRIPT_NAME'], 'start.php')): ?>
                    start.php
                <?php endif;?>
                #start">Start</a>
    </li>
    <li><a href="
                <?php if(!strpos($_SERVER['SCRIPT_NAME'], 'start.php')): ?>
                    start.php
                <?php endif;?>
                #overview">Overview</a>
    </li>

    <!-- etc.. -->

检查当前页面是否为start.php:如果是,则不执行任何操作;如果不是,请在start.php之前将href添加到#anchor属性。

我已经这样缩进,以便于阅读和理解正在发生的事情,但在实践中,您会想要在href属性中删除缩进,因为空格会使得%20 s。

的负载混​​乱

相关问题:

If index.php, show "this", if not, show "this"

How can I echo HTML in PHP?

此外:

http://php.net/manual/en/language.basic-syntax.phpmode.php