2013-02-07 20 views
0

我正在構建單頁歷史時間線微型網站,並且它自動適合瀏覽器寬度。將主體向左滾動到給定元素位置

我試圖做到這一點,當窗口被調整大小,身體滾動到最後點擊元素。 article的總是寬度和高度。如果我不這樣做,當窗口大小調整發生時,一切看起來都非常難看。

我試圖做到這一點:

$(window).resize(function() { 
    $('body').scrollLeft($('article#a1377').offset().left); 
}); 

其中一期工程非常好。但事情是在最後點擊的元素上進行。所以我想這樣做:

$("header a").click(function(event){ 
    var element = 'article' + $(this).prop("hash"); 
}); 

$(window).resize(function() { 
    $('body').scrollLeft($(element).offset().left); 
}); 

但它似乎並不工作,元素爲正確的值(文章#a1377)。

+0

你能給一些html代碼嗎? – pbaris

回答

2

Javascript關閉!!!

元素對resize回調不可見,它是點擊處理程序的本地回調。

假設'article' + $(this).prop("hash");真的是你想要返回!

var lastClicked = null; 
$("header a").click(function(event){ 
    lastClicked = 'article' + $(this).prop("hash"); 
}); 

$(window).resize(function() { 
    $('body').scrollLeft($(lastClicked).offset().left); 
}); 
+0

解決了它。謝謝你的解釋。 – pzin