0

我试图创建一个使用内部链接平滑滚动的“单页布局”。这是代码:

function scrollto(element) {
$('html, body').animate({
    scrollTop: ($(element).offset().top - 40)
}, 'slow'); };

页面上有一个固定的标题,因此值为 -40。

该脚本在实施它的站点内完美运行。对于我使用的链接:

<a href="javascript:scrollto('.link1');">Go to Link 1</a>

...并用类“标记”div:

<div class="link1">
         <h1>This is link no 1</h1> <p>Text</p>
</div>

这是一个示例:示例平滑滚动

如何创建放置在其他网站上的链接,这将导致我的文档中的指定 DIV?通常,使用锚点,它将是:

<a href="example.html#link1">Go to Link 1</a>

但我不使用锚点,也没有任何好的经验,因为标题是固定的。

有什么办法可以转换这个内部链接

"javascript:scrollto('.link2');"

这样我就可以从“外部”链接一些DIVS?

非常感谢您的帮助。我一直在谷歌上搜索。虽然找不到答案。我不是高级javascript用户,所以请理解。谢谢你。

4

1 回答 1

0

更新

在页面完全加载后让 jQuery 工作非常重要:

$(window).bind("load", function() {
//code here...
});

所以最后脚本应该是这样的:

$(window).bind("load", function() {
   window.scrollTo = function (selector) {
        if (selector === '') { return; }
        return $('html, body').animate({
            scrollTop: $('.' + selector).offset().top - 117
        }, 'fast');
    };
    $(document).ready(function () {
        scrollTo(window.location.hash.replace(/^\#/, ''));
    }); 
});

它解决了我的问题。

于 2014-01-19T20:52:57.763 回答