2013-03-29 91 views
0

我已經在網上詳細搜索了一個解決方案,並且非常接近,但我希望有人比我能完善這個更聰明。當我點擊div時,我希望所述div的頂部滾動到瀏覽器窗口的頂部。當前的代碼片段導致一個id爲「居中」的父div滾動到頂部,但我希望每個子div都能滾動到自己的頂部,而不必爲每個div都寫出一個實例。使用jQuery滾動到被點擊的div頂部

toggle:function(divid){ //public method 
if (typeof divid=="object") 
    divid=divid[0] 
this.showhide(divid, "toggle") 
$("html, body").animate({scrollTop:$('#centered').position().top}, 600); 

}

任何人都可以指出我錯過了什麼?

+0

id'divid'你想滾動到的元素的ID? – adeneo

+0

這是一個變量定義爲this.currentid = divid; – porrvision

+0

子div是否位於居中的div內,並且它們是否也有可滾動內容(overflow:scroll-y)?添加屏幕截圖可能會使這個更清晰。 –

回答

0

不知道'divid'代表什麼,這是一個相當普遍的例子,可能不會直接適合您的方案。但是,假設「DIVID」是id的值或代表在div一個對象,你應該能夠做這樣的事情:

toggle:function(divid) { 
    if (typeof divid == 'object') { 
     divid = $(divid[0]); // Assumes a jQuery object (not very robust) 
    } else { 
     divid = $('#' + divid); 
    } 

    this.showhide(divid, "toggle"); // May break depending if it accepts the jQuery object 
    $('html, body').animate({ scrollTop: divid.offset().top }, 600); 
} 

如果「這個」是div的問題你可以換一個參考$(this)而不是使用divid。

請注意,此代碼不是非常健壯,所以應該正確地更改以解釋任何divid真的。另請注意 - 不要忘記你的分號。