单击“examplelink.php#anchor”时javascript无法正常工作

时间:2010-11-23 13:16:55

标签: javascript scroll anchor smooth

真的,真的希望有人能帮助我!如果你这么做,谢谢你! :)

我有两个页面...一个名为 index.php ,另一个名为 portfolio.php 。 我的标题(每页都相同)包含一些锚点,将其重新标记为 portfolio.php 页面( portfolio.php#blogg )。

我还有平滑滚动的javascript代码(这应该适用于所有页面),但是当我在另一个页面然后投资组合时它不适用于标题锚链接.PHP

如果我在 index.php portfolio.php#blogg ”,我该怎么做才能让 javascript 正常运行>页面?

继承我的javascript:

window.addEvent('domready',function() { new SmoothScroll({ duration: 800 }); });

2 个答案:

答案 0 :(得分:0)

嗯....问题,如果我理解正确的话,浏览器在加载SmoothScroll对象之前从另一个页面到达时跳转到片段锚点位置。首先想到的是使用会话或cookie的解决方案。

当用户在索引页面上并单击应该滚动到#blogg锚点的投资组合的链接时:不是将hashtag片段添加到链接的URL,而是保存指示页面的cookie应该滚动并直接链接到投资组合页面的顶部。

然后,在项目组合页面domready事件中,加载SmoothScroll对象,检查是否存在cookie,滚动到#blogg锚点(如果存在),然后删除cookie。

答案 1 :(得分:0)

你在这里没有提供太多信息,但我假设SmoothScroll是来自MooTools的那个? 看看这个:http://davidwalsh.name/mootools-onload-smoothscroll

window.addEvent(‘domready’, function() {
    new SmoothScroll({ duration:700 }, window);
    var el = window.location.hash.substring(1); // the hash
    if(el) {
        window.scrollTo(0,0);
        var scroll = new Fx.Scroll(
            window,
            { wait: false, duration: 700, transition: Fx.Transitions.Quad.easeInOut }
        );
        scroll.toElement(el);
    }
});