2011-02-08 71 views
0

即时通讯使用卡尔斯威德伯格的jQuery的平滑滚动插件同一页面链接: https://github.com/kswedberg/jquery-smooth-scrollkswedberg 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'); 
}); 
}); 

的问题是,一旦窗口滚动功能被初始化,然后它时,便会引发的平滑滚动插件滚动页面。这意味着点击一个链接后,它将始终覆盖点击时应用到链接的颜色,因此点击其他链接不会改变它们的颜色。

感谢

编辑 - 香港专业教育学院进行,但与下面的代码排序的工作的版本:

$(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"); 
     }); 
    } 
}); 
}); 

但是有时点击这些链接不改变它的颜色,但再次点击它会。我认为在Scroll之后触发的不同功能并不总是按顺序运行。如果这是问题,我该如何让他们这样做?

感谢

+0

[YUI 3's ScrollView](http://developer.yahoo.com/yui/3/scrollview/)正是如此。请参阅[本演示](http://developer.yahoo.com/yui/3/examples/scrollview/scrollview_source.html)。如果你对使用YUI不感兴趣(我不指望你是),你可以查看ScrollView源代码,看看它是如何完成的。 – 2011-04-06 02:28:39

回答

0

这是一个老问题,但认为它可能是有用的,何况jQuery的航点,这不你到底是什么后(是基于jQuery的,很明显)。非常有用的插件,你可以找到它here