2014-05-21 78 views
1

新來的jQuery滾動窗口DIV的頂部上點擊

我有一個手風琴使用此:

(function($) { 

var allPanels = $('.accordion > dd').hide(); 

$('.accordion > dt > a').click(function() { 
    allPanels.slideUp(); 
    $(this).parent().next().slideDown(); 
    return false; 


    }); 

})(jQuery); 

一個手風琴節是超長的,當你點擊下一個將打開上方內容。

我希望有一種方法可以幫助您在單擊a標籤而不是隻滑動內容時滾動到父div頂部的左側區域。我確定你們其中一位專業人士知道如何。提前致謝。

頁的結構類似於:

<dl class="accordion"> 
<dt>title</dt> 
<dd> 
    content 
</dd> 
<dt>title2</dt> 
<dd> 
    content2 
</dd> 
<dt>title3</dt> 
<dd> 
    content3 
</dd> 
</dl> 

回答

0

您可以修改您的代碼,例如:所以

(function($) { 

var allPanels = $('.accordion > dd').hide(); 

$('.accordion > dt > a').click(function() { 
    allPanels.slideUp(); 
    $(this).parent().next().slideDown(); 

    $("html,body").animate({scrollTop: $("#left-area").offset().top}, 300); 

    return false; 


    }); 

})(jQuery); 
+0

非常感謝你,它對我的​​應用程序很好 –

+0

我沒有聲望來投票這個。 –

+0

@JoeBarrett沒關係,你應該能夠接受它作爲正確的答案。如果沒有,它沒什麼大不了的。樂於幫助。 – SteamDev

0

,我只想澄清,你想其他部分關閉,窗口向下滾動到手風琴開放部分標題的ID?

如果你可以發佈一個URL或JS小提琴這將是有益的,但是這樣的事情,也許?

var allPanels = $('.accordion > dd').hide(); 

$('.accordion > dt > a').click(function() { 
    allPanels.slideUp(); 
    $(this).parent().next().slideDown();  

    $('html, body').animate({ //if you're wanting the whole window to scroll down 
    scrollTop: $("div#left-area").offset().top 
    }, 1000); 

    return false; 
}); 

如果你發佈的jsfiddle我可以鼓搗,我會檢驗和修訂(如果它不作爲就是工作 - 我是一種假設它不會,因爲不看您的HTML結構,我覺得我可能很容易忽略了一些東西)。

編輯:我認爲有一個更好的解決方案,這不使用個人ID動畫向下滾動,但我需要看到你如何構造它的例子。

+0

謝謝你,你是一個codeStar。儘管我使用了其他方法。太感謝了。 –

+0

沒問題 - 無論如何,SteamDev的解決方案基本上是一樣的,我們同時發佈。就像我說的,可能有一種更廣泛的應用這個解決方案的方法,使用'$(this)'而不是ID'#left-area'作爲目標,但是我必須看到你的HTML結構。 –