jQuery和Link Anchor

时间:2011-11-10 16:11:22

标签: jquery css anchor

你好这是一个特别的问题,我不知道jQuery是否可以帮助我,或者在这种情况下即使CSS也足够了。

我有一个页面链接到另一个页面,指向一个链接锚点

<a title="Creazione Siti E-Commerce" href="http://mysite.com/it/servizi/#ecommerce">

转到页面/ it / servizi /

中的锚点链接

这里一切都很好。

我想要实现的目标是:

新页面将使用jQuery滚动动画滚动到锚点。所以我应该能够告诉jQuery代码,当它在URL中找到像http://mysite.com/it/servizi/#ecommerce这样的锚时,它将为滚动设置动画。

第二点是当它找到这种URL http://mysite.com/it/servizi/#ecommerce时,jQuery代码会向页面中的特定元素添加一个新类。 (我需要它来改变文本的颜色,以帮助用户查看已选择的内容,在本例中为#ecommerce)

很难解释。我希望有人能理解我的观点:(

感谢。

4 个答案:

答案 0 :(得分:0)

好的,你要加载你正在参加魔术的页面,意思是在$(document).ready(function(){});块中,使用jquery选择所有锚点,如var anchors = $('a');,然后迭代槽所有锚点,逐个检查它们,并检查它们中的某些是否包含$(anchor).attr('html') = 'you'r value',当你要找到这个锚点时,显然使用IF块,做其余的代码

答案 1 :(得分:0)

你可能不得不使用#youranchor以外的其他东西。浏览器会自动滚动到此,因此您无法使用jquery滚动到它。

看看这个插件: http://www.mathias-bank.de/2007/04/21/jquery-plugin-geturlparam-version-2/

它可以让你获得url参数。

因此您可以将自己的网址更改为http://mysite.com/it/servizi/&anchor=ecommerce

然后使用var anchor = $(document).getUrlParam(“anchor″);获取您需要滚动到的锚点。

然后你也可以这样做:

$("#" + anchor).addClass('yourHighlightClass');

希望有所帮助:)

答案 2 :(得分:0)

发现这个:

使用jQuery动画滚动到锚点/ id函数 http://djpate.com/2009/10/07/animated-scroll-to-anchorid-function-with-jquery/

Google爱你,爱它。 :)

答案 3 :(得分:0)

你应该添加

$(function(){
    var hash = document.location.hash;
    document.location.hash = '#';

    var element = $('a[name="'+hash.slice(1)+'"]');
    if (element.length){
        var top = element.offset().top;
        $('html,body').animate({scrollTop:top }, 2000);
        element.addClass('selected');
    }
});

并在css中创建一个名为selected的类,其中包含您希望突出显示的文本具有的效果..

.selected{color:red;}

在接收页面上..

演示代码 http://jsfiddle.net/gaby/XH72A/
演示示例 http://fiddle.jshell.net/gaby/XH72A/show/light/#line-80