【发布时间】:2014-09-21 03:16:16
【问题描述】:
我有一系列使用锚机制的链接:
<div class="header">
<p class="menu"><a href="#S1">Section1</a></p>
<p class="menu"><a href="#S2">Section2</a></p>
...
</div>
<div style="width: 100%;">
<a name="S1" class="test"> </a>
<div class="curtain">
Lots of text
</div>
<a name="S2" class="test"> </a>
<div class="curtain">
lots of text
</div>
...
</div>
我正在使用以下 CSS:
.test
{
position:relative;
margin: 0;
padding: 0;
float: left;
display: inline-block;
margin-top: -100px; /* whatever offset this needs to be */
}
一切正常。但是当然,当我们点击链接时,它会从一个部分跳到下一个部分。所以我想要一个平滑的过渡,使用某种滚动到选定的开始 部分。
我想我在 Stackoverflow 上读到过,这对于 CSS3 来说(还)是不可能的,但我想确认一下,而且我想知道“可能”是什么解决方案。我很高兴使用 JS,但我不能使用 jQuery。我尝试在链接上使用点击功能,检索需要显示的 div 的“垂直位置”,但没有成功。我还在学习 JS,对它的了解还不够,无法提出自己的解决方案。
任何帮助/想法将不胜感激。
【问题讨论】:
-
你是对的 - CSS3 无法平滑滚动,因为你无法使用 CSS 更改滚动位置,因此无法像其他属性一样转换它。您将需要使用 JS,但如果没有像 jQuery 这样的库,实现平滑滚动可能并非易事。