2011-02-08 70 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