2013-04-10 75 views
1

直播頁面:http://wlvrtn.com/sites/nms/page.phpjQuery的自動錨導航 - 添加像素偏移

我添加了一些jQuery的(感謝來自StackOverflow的幫助)來自動的我的章鏈接的目標,使得第三章鏈接將直接向頁面上的第三章(文章)。

正如您從活動頁面中看到的,我的粘性導航欄妨礙了每章的開始。 我想垂直偏移每個jquery anchor 200px,以便每個章節的開頭正確顯示。

HTML - 章節導航:

<nav id="chapters"> 
    <ul> 
     <li><a href="#">Chapter One</a></li> 
     <li><a href="#">Chapter Two</a></li> 
     <li><a href="#">Chapter Three</a></li> 
    </ul> 
</nav> 

HTML - 文章:

<article class="clearfix"> 
    <h1>Chapter One</h1> 
    ... 
</article> 

的jQuery:

// Chapters - find the nav & headers 
var nav = $('#chapters li a'), 
    articles = $('#main article > h1'); 

// Chapters - now assign an id/href to each 
nav.each(function (i) { 
    nav.eq(i).attr('href', '#article-' + i); 
    articles[i].id = 'article-' + i; 
}); 

回答

1

您可以通過重新排列元素做到這一點:

<h1>Chapter One<a id="article-0" style="position: relative; top: -200px;">&nbsp;</a></h1> 

在這裏,你要鏈接到錨是不是裏面的h1而是一個「存根」元素h1這是偏移了幾個像素。

顯然CSS類將是一個好一點:

.v-offset { 
    position: relative; 
    top: -200px; 
} 

... 

<h1>Chapter One<a id="article-0" class="v-offset">&nbsp;</a></h1> 

您可以使用jQuery的append()方法寫的錨在動態

nav.each(function (i, ele) { 
    $(ele).attr('href', '#article-' + i); // $(ele) == $nav.eq(i) 
    $(articles[i]).append('<a id="article-' + i + '" class="v-offset">&nbsp;</a>'); 
}); 
+0

這是一個很好的開始,儘管我正在尋找這樣做,但沒有爲文章指定一個ID,因爲它們將在稍後由CMS通過客戶端生成。 – pianofighter 2013-04-10 19:57:46

+0

我可以使用append()將「article-0」和「v-offset」直接應用於h1嗎? – pianofighter 2013-04-10 20:06:31

+0

可能不是。你需要定位'#article-0'錨點相對於'h1'。 – 2013-04-10 20:11:41

0

添加任何保證金左:200像素padding-左:200px添加到要縮進的項目。

+0

這是OP希望不是。我讀這個問題的方式滾動位置應該偏移200px,所以標題欄不會掩蓋內容後單擊鏈接 – 2013-04-10 19:50:13

+0

@ p.s.w.g是正確的 – pianofighter 2013-04-10 19:51:19

0

如果你想簡單列出文本變換,你可以做這樣的事情還有:

HTML

<ul> 
    <li>test</li> 
    <li>test2</li> 
    <li>test3</li> 
</ul> 

CSS

ul{ 
     margin-left:200px; 
    } 

OR

HTML

<ul> 
    <li>test</li> 
    <li>test2</li> 
    <li>test3</li> 
</ul> 

CSS

li{ 
    text-indent:200px; 
    list-style-type: none; 
} 
+0

我可能措辭不當我的問題。我已經編輯它,以澄清我正在尋找垂直移動200px的文章錨點。看看http://wlvrtn.com/sites/nms/page.php,你會明白我的意思。 – pianofighter 2013-04-10 19:56:43