我正在创建一个页面。我有以下HTML:
<ul id="nav">
<li><a href="#section1">Link</a></li>
<li><a href="#section2">Link</a></li>
<li><a href="#section3">Link</a></li>
<li><a href="#section4">Link</a></li>
<li><a href="#section5">Link</a></li>
<li><a href="#section6">Link</a></li>
</ul>
<div class="section">
<p>Content</p>
</div>
<div class="section" id="section1">
<p>Content</p>
</div>
<div class="section">
<p>Content</p>
</div>
<div class="section" id="section2">
<p>Content</p>
</div>
<div class="section">
<p>Content</p>
</div>
<div class="section" id="section3">
<p>Content</p>
</div>
<div class="section">
<p>Content</p>
</div>
<div class="section" id="section4">
<p>Content</p>
</div>
<div class="section">
<p>Content</p>
</div>
<div class="section" id="section5">
<p>Content</p>
</div>
<div class="section">
<p>Content</p>
</div>
<div class="section" id="section6">
<p>Content</p>
</div>
我希望实现的是点击链接时。使用jQuery查找与链接href具有相同id的div,然后将页面滚动到该div。谁能指出我正确的方向?我正在努力的一点是如何将id与href匹配。
非常感谢。
答案 0 :(得分:3)
为每个锚标记添加点击事件。使用attr函数获取所选元素的href。
然后我使用animate函数滚动到这个元素。
$(function(){
$('#nav li a').click(function(){
var divID = $(this).attr('href');
$('html,body').animate({
scrollTop: $(divID).offset().top
}, {
duration: 'slow',
easing: 'swing'
});
});
});
答案 1 :(得分:1)
尝试这样的事情:
$('#nav a').click(function(){
$($(this).attr('href')).whatyouwant();
});
答案 2 :(得分:1)
你可以通过这种方式实现这一目标:
$('#nav li a').click(function(){
//Scroll to targetID offsetTop.. or using the scrollTo plugin, scrolling to $($(this).attr('href'))
})