我有一个页面,其中各种元素的内容被 AJAXed 到核心结构中。结构本身非常简单,元素上没有任何特殊定位:
<body>
<article id="one"></article>
<article id="two"></article>
<article id="three"></article>
</body>
每篇文章的内容是通过 AJAX 调用加载的,并且每篇文章的内容长度无法提前知道。此外,可以使用 URL 导航到每个部分(因此我可以#two
使用mysite.com/two
; 它加载页面并向下滚动到请求的文章)。
当然,在加载完所有内容之后,这很好用,但我的麻烦是目标元素之前的内容尚未加载时。因为元素必须扩展以适应内容,它会下推目标元素,所以不是得到这个:
____________________
| Target Element |
| |
|__________________|
| Next Element |
|__________________|
你得到这个:
_____________________
| Previous Element |
| |
| |
|___________________|
| Target Element |
|___________________|
我尝试为内容块设置最小高度,但这仅在部分时间有效,并且只有在最终高度接近原始高度时才真正有效。
理想情况下,即使用户在所有内容加载之前滚动,我也希望视口相对于内容保持在相同的位置,但我会在用户尝试滚动之前保持该位置。
有什么办法可以做到这些吗?