我試圖做到以下幾點:激活2個jQuery函數有一個鏈接
- 打開一個div 的slideToggle
- 移動用戶窗口的div頂部scrollTop的
- 然後基本上扭轉用戶關閉div時的過程。
我把整個過程接近完成,但我有一個問題。當我打開div時,我的窗口不會移動到div的頂部。但是當我關閉div時,窗口會移動到我想要的位置。
這裏是我的jQuery代碼:
// Find the location of a div (x, y)
function divLoc(object) {
var topCord = 0;
// If browser supports offsetParent
if(object.offsetParent) {
do {
topCord += object.offsetHeight;
}
while (object === object.offsetParent);
return topCord;
}
}
$("#open").click(function() {
var newInfo = document.getElementById("newInfo");
var location = divLoc(newInfo);
$("#newInfo").slideToggle('slow', function() {
$('html,body').animate({ scrollTop: location }, 2000);
});
});
我上傳的問題上的jsfiddle一個例子:Here
我認爲你的while條件應該是(object = object.offsetParent) – Andbdrew
這是假設在那裏。它確保增加所有周邊div的高度。 –
當你說「那麼基本上在用戶關閉div時逆轉過程」,你想要發生什麼'scrollTop'?返回窗口頂部?讓它回到按鈕位置? – Dom