如何转换“javascript:scrollto('。class');”到外部链接(从外部导致网站上的某个.class)?

问题描述:

我正尝试使用内部链接平滑滚动来创建'单页布局'。这是代码:如何转换“javascript:scrollto('。class');”到外部链接(从外部导致网站上的某个.class)?

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> 

下面是一个例子:EXAMPLE SMOOTH SCROLLING

如何创建一个链接置于其他网站,这将导致在我的文档中指定的DIV?通常情况下,使用锚,这将是:

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

,但我不使用锚,并不能真正与他们有什么好的经验,因为在固定头的。

有什么办法来改变这个内部链接

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

,这样我可以从“外部”链接一些div?

非常感谢您的帮助。我一直在使用Google。虽然找不到答案。我不是一个高级的JavaScript用户,所以请理解。谢谢。

UPDATE

,使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(/^\#/, '')); 
    }); 
}); 

它解决了我的问题。