2013-04-10 71 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