2013-02-27 66 views
0

我正在開發一個單頁的wordpress網站。因爲它是一個單頁面,所以我使用jQuery scrollTop爲菜單設置動畫。我想要去特定的div當我點擊對應的菜單鏈接與div ID .. 當前問題是固定定位菜單選項卡正在穿越內容..它顯示在div內容(視口問題)。jQuery scrollTop視口問題。如何將自定義值添加到position()頂部

我想給這個菜單選項卡和div內容之間的差距,使內容完全可見。

用於滾動效果

jQuery代碼是如下:「.POSITION()頂}」

$(document).ready(function() { 

    $('a[href=#welcome]').click(function(){ 

    $('html, body').animate({scrollTop:$('#welcome').position().top}, 'slow'); 

    return false; 

    }); 



}); 


$(document).ready(function() { 

    $('a[href=#aboutus]').click(function(){ 
    $('html, body').animate({scrollTop:$('#aboutus').position().top}, 'slow'); 

    return false; 

    }); 

}); 

我需要的是像200像素添加一些值以上div的頂部位置,這樣我可以滾動到div頂端下方的位置...

編輯:「對不起人們......我在上面的要求中犯了一個錯誤..我必須從div的頂部位置減去一個值,以便我可以滾動到位於頂部以上的位置..「


我該如何解決這個問題?任何幫助將不勝感激..提前

謝謝..

回答

1

你可以在菜單的高度,例如:

var menuHeight = $('#mainMenu').height(); 

當你做滾動的行:

$('html, body').animate({scrollTop:$('#aboutus').position().top}, 'slow'); 

你減去菜單高度:

$('html, body').animate({scrollTop:$('#aboutus').position().top-menuHeight}, 'slow'); 

未經測試,但我認爲它應該可以工作。 基本上你說滾動到你的div位置,但是在該位置之前的位置將是菜單高度。

+0

嗨,非常感謝您的幫助..您的假設是正確的!我用position()。top-175。但是現在我知道我的上面的代碼不工作 - > $('html,body')。animate({scrollTop:$('#aboutus')。position()。top-menuHeight},'slow') ;它只是滾動到該div在html代碼只.. jquery動畫不工作..我有一些其他的代碼,並在其中使用你的建議..現在它工作.. :-) – 2013-02-28 04:01:02

1

我不確定我是否完全理解,但可以將200(自px以來)添加到您的位置。

$(document).ready(function() { 
    var marginTop = 200; // add or remove or even grab the position of another element 

    $('a[href=#aboutus]').click(function(){ 
     $('html, body').animate({scrollTop:$('#aboutus').position().top + marginTop}, 'slow'); 
     return false; 
    }); 
}); 
+0

讓我們說你的#aboutus div位置是1000px 如果你'添加'marginTop你會得到更多的滾動應該做的。 你應該減去而不是添加(我認爲)。 – rjml 2013-02-27 23:43:20

+0

這一切都取決於人的元素。你應該獲取元素的位置並設置它。該變量爲負值或正值以適應其喜好。屏幕截圖和一些html會澄清他的問題。 – xivo 2013-02-27 23:53:02

+0

真... 我以爲他有頂級菜單:) – rjml 2013-02-27 23:55:23

相關問題