2010-08-27 19 views
0

我正在處理我的新投資組合網站的代碼,並使用砌體擴展網格佈局。滾動到展開的DIV問題和擴展框中的鏈接

我遇到問題,使其滾動到擴展DIV的代碼。它並不總是滾動到上部股利.expanded ......這裏有一個例子:

http://bit.ly/axDQox

嘗試點擊箱1,然後框5.你會發現,頁面滾動到中間低於方塊5.花了我幾個小時纔得到scroll-to擴展框的工作,我在jquery中並不是那麼棒,所以幫助真的很值得讚賞。 :)

另一件事,如果你展開框1並點擊鏈接,框1關閉。順便說一下,我從this thread那裏得到了示例html/css代碼。

回答

1

這是因爲scrollTo函數在動畫完成前被調用。 jQuery animate函數有一個回調只是因爲這個原因(你實際上已經在使用它)。

.animate({ 
    width: size[0], 
    height: size[1] 
    }, function(){ 
    // show hidden content when box has expanded completely 
    $(this).find('.expandable').show('slow'); 
    $(this).find('.hideable').hide('slow'); 
    $('#grid').masonry(); 
    // call scrollTo here 
}); 

我剛剛意識到你有其他動畫在同一時間進行,所以這不會完全工作。也許關於jQuery Effects文檔可以幫助你 - 特別是queue/dequeue部分。

+0

好吧我已經得到它的工作。我不得不在代碼中做很多修改。還必須刪除導致scrollTo問題的動畫。現在我已經集成了easySlider,但是我有問題將其重置爲預設模式,因此我可以使用新的滑塊ID再次調用它。 這是我到目前爲止完成的工作http://keanetix.co.cc/folio2010 如果您注意到當您單擊Box#1(CM Partners),然後單擊Box#3(NBCM),則滑塊不會工作。請幫助?謝謝。 :) – keane 2010-09-01 10:17:22

+0

我認爲這是因爲實際頁面的大小。如果讓我的瀏覽器非常「短」,我相信它會按照您的意圖滾動。另外,如果頁面在這個區域下面有更多的內容,它應該正確滾動。在我的瀏覽器中,它只是滾動到底部,我認爲它應該。 – partkyle 2010-09-01 18:07:28

0

它幾乎正在使用隊列功能。但是,當另一個框展開時,先前展開的框將不會恢復/關閉。我使用這個代碼this頁:

.animate({ 
width: size[0], 
height: size[1] 
}, function(){ 
// show hidden content when box has expanded completely 
$(this).find('.expandable').show('slow'); 
$(this).find('.hideable').hide('slow'); 
$('#grid').masonry(); 
// scrollTo here 
$(this).queue(function(){ 
var yloc = $('.expanded').offset().top; 
$(document).scrollTo($('.expanded') ,600); 
//next(); 
} 
});  
}); 
restoreBoxes(); 
$(this).addClass('expanded'); 

如果您發現「下一個()」函數評論。如果我取消註釋「next()」函數,則先前展開的框會關閉,但頁面不會正確滾動到展開的框。它滾動大約100px。