2014-09-10 70 views
0

我使用jQuery Accordion控制駐留在其自身的滾動DIV:滾動到jQuery的手風琴控制的開放標籤放置在自己的DIV

<div id="mainSection"> 
    <div id="accordion"> 
    </div> 
</div> 

與CSS:

#mainSection{ 
    clear: both; 
    margin: 0; 
    padding: 4px 0px 0px 0px; 
    overflow-y: auto; 
    max-height: 600px; 
    border-top: thin solid #EEE; 
} 

手風琴控制被初始化爲以特定選項卡打開,因此:

$("#accordion").accordion({ 
      collapsible: true, 
      heightStyle: "content", 
      active: nActiveTab 
     }); 

用於選擇手風琴是動態添加的。

這適用於手風琴沒有太多標籤的情況。但是,如果手風琴有100個標籤,並且我想在底部(在我的nActiveTab變量中)打開標籤99,那麼手風琴創建時它不會向下滾動到打開的標籤99.

是有什麼辦法讓它滾動到它?

PS。這裏是fiddle

回答

1

用你的代碼創建一個fiddlejs總是有幫助的。

嘗試增加你的手風琴代碼之後,讓我知道它是如何工作:

var activeTabOffset = $(".ui-accordion-header-active").offset().top; 
var mainSectionHeight = $('#mainSection').height(); 

if (activeTabOffset > mainSectionHeight) { 
    $('#mainSection').animate({scrollTop: activeTabOffset}, 1000); 
} 

這將完成是滾動您mainSection元素向下(或向上)到第一個活動的手風琴。我沒有測試它,但它應該工作。

這裏是小提琴:http://jsfiddle.net/95g0L8pq/3/

+0

謝謝。我認爲你在那裏添加了太多的右括號。但仍然無效。順便說一句,謝謝你提醒我。我把小提琴加到了我原來的帖子中。 – c00000fd 2014-09-10 19:37:30

+0

我更新了答案和小提琴。它爲我工作。再試一次,讓我知道 – 2014-09-10 19:40:20

+0

謝謝。有沒有辦法阻止它滾動,如果它不必?這將顯示問題:http://jsfiddle.net/95g0L8pq/1/ – c00000fd 2014-09-10 19:46:36