您可能会发现scrollIntoView有用。
有几个问题与使用scrollIntoView
:
- 它所选元素滚动一路屏幕的顶部。如果在所选元素上方有一点空间,而不是一直推到窗口的顶部,看起来会更好。您可以通过结合
scrollIntoView
与scrollBy来解决这个问题,它可以滚动相对数量。
- 在您的特定网站上,某些选项卡部分非常短,例如,选择概览部分 - 一小部分时 - 没有空间将选项卡面板滚动到屏幕顶部,具体取决于在窗口大小上。但是,较长的部分将滚动到顶部的选项卡面板。这种行为差异看起来不太好。
可以使用这样的事情你当前标签面板上实现scrollTo:
<ul class="TabbedPanelsTabGroup">
<li id="tabHeaderOverview" class="TabbedPanelsTab" tabindex="0" onclick="document.getElementById('tabHeaderOverview').scrollIntoView()">Overview</li>
<li id="tabHeaderActivity" class="TabbedPanelsTab" tabindex="0" onclick="document.getElementById('tabHeaderActivity').scrollIntoView()">Activity Weeks</li>
<li id="tabHeaderExpeditions" class="TabbedPanelsTab" tabindex="0" onclick="document.getElementById('tabHeaderExpeditions').scrollIntoView()">Expeditions</li>
<li id="tabHeaderTestimonials" class="TabbedPanelsTab TabbedPanelsTabSelected" tabindex="0" onclick="document.getElementById('tabHeaderTestimonials').scrollIntoView()">Testimonials</li>
</ul>
你的问题被标记jQuery的,但你似乎没有使用它。 jquery提供了一套更强大的滚动例程,请参阅this jquery demo page。
编辑:它看起来像Spry上面的方法有问题:添加onclick事件到列表元素打破了Spry选项卡面板。我只有用轻快的边际经验,但这种Spry.Utils方法看起来可能是一个轻快解决方案的一部分 -
您需要在您的网页SpryUtils,那么你需要添加JavaScript像下面 - 抱歉,但我不能尝试这个我的机器上,所以这是未经测试:
function scrollTabHeader(event)
{
this.scrollIntoView();
// this incorporates the scrollBy mentioned above:
window.scrollBy(0, -10);
}
Spry.Utils.addEventListener("tabHeaderOverview", "click", scrollTabHeader, false);
Spry.Utils.addEventListener("tabHeaderActivity", "click", scrollTabHeader, false);
Spry.Utils.addEventListener("tabHeaderExpeditions", "click", scrollTabHeader, false);
Spry.Utils.addEventListener("tabHeaderTestimonials", "click", scrollTabHeader, false);
嗨Aymen。感谢您的答复。我认为你的建议适用于页面顶部的按钮。我想要做的是当页面面板上的其中一个选项卡被选中时,页面会滚动到一个锚点。 [查看此页](http://www.godaddy.com/email/online-storage.aspx?ci=55860)并单击此页上的其中一个选项卡查看我的意思。 –