【发布时间】:2014-01-24 15:13:24
【问题描述】:
我在使用 scrollTop JQuery 函数时有一个奇怪的行为。我有一个 div,其中包含一个复杂的文本,分为不同的部分,如下所示:
<div id="wrapper" ... >
<div id="section1">
<h1>Section 1</h1>
Lorem ipsum dolor sit amet, consectetuer...
...
</div>
<div id="section2">
<h1>Section 2</h1>
Lorem ipsum dolor sit amet, consectetuer...
...
</div>
<div id="section3">
<h1>Section 3</h1>
Lorem ipsum dolor sit amet, consectetuer...
...
</div>
...
第二个 DIV 包含一个简单的部分列表,当用户单击每个部分时,我希望包装器滚动到右侧部分:
<li>
<a href="#" onclick="customScrollTo('section1')">section1</a>
</li>
<li>
<a href="#" onclick="customScrollTo('section2')">section2</a>
...
这就是简单的JS函数:
function customScrollTo (section) {
$('#wrapper').animate({
scrollTop: $("#wrapper div[id='" + section + "']").offset().top
}, 200);
};
现在如果你尝试在这个 JSfiddle 中测试它: http://jsfiddle.net/Ws5F9/4/
你可以看到两种奇怪的行为:
- 如果点击“section 1”而不是“section 2”而不是“section 3”,则第 3 部分不起作用!
- 如果您在同一部分链接上单击两次,则第二次会在页面顶部滚动
【问题讨论】:
标签: javascript jquery