2012-03-07 70 views
0

我在頁面上有多個手風琴,每個手風琴內都有大量的文字。一次只能開一部手風琴。我有scrollTo插件,當手風琴被點擊以與手風琴的頂部對齊時,我正在爲scrollTo製作動畫。如果我的文字太多,scrollTo不會與手風琴頂部對齊。在動畫開始之前是否有辦法獲得手風琴的結束位置?或者簡單地將滾動位置與手風琴對齊的解決方案?jQuery scrollTo手風琴結束位置

$(".accordion h3").click(function() { 
    var thisTrigger = $("span", this); 
    var thisIntro = $(this).siblings(".intro"); 
    var thisPane = $(this).siblings(".pane"); 
    var otherIntros = $(this).parents(".parentClass").siblings().find(".intro"); 
    var otherPanes = $(this).parents(".parentClass").siblings().find(".pane"); 
    var otherHeaders = $(otherPanes).siblings(".current"); 
    var otherTriggers = $(otherHeaders).find("span"); 
    if ($(this).hasClass("current")) { 
     $(this).removeClass("current"); 
     $(thisIntro).removeClass("open"); 
     $(thisPane).slideUp("fast"); 
    } else { 
     $(this).addClass("current"); 
     $(thisIntro).addClass("open"); 
     $(thisPane).slideDown("fast"); 
     $(otherIntros).removeClass("open"); 
     $(otherHeaders).removeClass("current"); 
     $('html, body').animate({ scrollTop: $(this).position().top }, 500); 
    } 
}); 
+0

你嘗試過錨鏈接在大的文本的結束? – ggzone 2012-03-07 16:35:26

+0

由於點擊手風琴的時候由於文本數量的原因比平常更往下滾動頁面,所以$(this).position()。top所帶的位置是錯誤的。我只需要得到手風琴的最高位置。錨點不起作用。 – Collin 2012-03-07 16:41:32

回答

1

此鏈接幫助我: How to set scrollbar to top of section/forget scroll position

下面是我的代碼:

//initializes accordion 
$("#search").accordion({ 
    header: "h3" 
    , fillSpace: true 
    , active: activeIndex 
    , change: function (event, ui) { 
     var index = $(this).accordion("option", "active"); 
     $("[id$=_hdnAccordionIndex]").val(index);    
     $('.ui-accordion-content').scrollTop(0);    
    } 
});