kswedberg jquery平滑滚动插件-突出显示链接并删除滚动上的突出显示?

kswedberg jquery平滑滚动插件-突出显示链接并删除滚动上的突出显示?,jquery,jquery-plugins,chaining,smooth-scrolling,Jquery,Jquery Plugins,Chaining,Smooth Scrolling,Im使用Karl Swedberg的jquery平滑滚动插件实现相同的页面链接: 链接具有固定位置,因此始终可见。我希望链接在单击后突出显示,但当您滚动页面时,突出显示将被删除,因为您可能不再位于链接对应的部分 让链接在单击时更改颜色很简单。然而,当你滚动的时候移除颜色是困难的,因为插件本身是滚动的。我尝试了以下代码: $(document).ready(function() { $('#scrollcontrolls a').smoothScroll( { afterScro

Im使用Karl Swedberg的jquery平滑滚动插件实现相同的页面链接:

链接具有固定位置,因此始终可见。我希望链接在单击后突出显示,但当您滚动页面时,突出显示将被删除,因为您可能不再位于链接对应的部分

让链接在单击时更改颜色很简单。然而,当你滚动的时候移除颜色是困难的,因为插件本身是滚动的。我尝试了以下代码:

$(document).ready(function() {
$('#scrollcontrolls a').smoothScroll(
    {
    afterScroll: function() { 
        $(window).scroll(function () { 
            $("#scrollcontrolls a").css("color", "black");
        });

    }
});
});

$(document).ready(function() {
$('#scrollcontrolls a').click(function() {
    $(this).css('color','red');
});
});
问题是,一旦初始化了WindowScroll函数,它就会在smooth scroll插件滚动页面时触发。这意味着您单击一个链接后,它将始终覆盖单击时应用于链接的颜色,因此单击其他链接不会更改其颜色

谢谢

编辑-我制作了一个版本,它的代码如下:

 $(window).bind('scroll', function () { 
$("#scrollcontrolls a").css("color", "black");
 });

 $(document).ready(function() {
$('#scrollcontrolls a').smoothScroll(
    {
    afterScroll: function() { 
        $(window).unbind();
        $(this).css('color','red');
        $(window).bind('scroll', function () { 
            $("#scrollcontrolls a").css("color", "black");
        });
    }
});
 });
然而,有时点击链接不会改变它的颜色,但再次点击它会改变颜色。我认为afterScroll启动的不同函数并不总是按顺序运行。如果这是问题所在,我如何让他们这样做


谢谢

这是一个老问题,但我认为提到jQuery航路点可能会有用,它正是您所追求的,显然是基于jQuery的。非常有用的插件,你可以找到它。

正是这样做的。看见如果您对使用YUI不感兴趣,我不希望您会感兴趣,您可以查看ScrollView源代码以了解它是如何完成的。